{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/Blue/blue-hand-icon.png","webpack:///./src/assets/returnToAdmin-icon.svg","webpack:///./src/assets/Blue/blue-trash-icon.png","webpack:///./src/assets/Diagnosis - Medium Gray - Selected.png","webpack:///./src/assets/Green/Manual Exam Upload - Green.png","webpack:///./src/assets/green-icon.png","webpack:///./src/assets/Drop Down Menu - Blue.png","webpack:///./src/assets/Gray/Expand_Icon_April_2022_gray.png","webpack:///./src/assets/Blue/blue-measurements-standardCircles34-icon.png","webpack:///./src/assets/Manual Exam Upload - Gray.png","webpack:///./src/assets/Blue/blue-measurements-drusen2-icon.png","webpack:///./src/assets/Proofsheet - Gray - Selected.png","webpack:///./src/assets/Green/Devices-background-green.svg","webpack:///./src/assets/Add Patient - Green - Selected.png","webpack:///./src/assets/Teaching-Research Case - Green.png","webpack:///./src/assets/Blue/blue-big-icon.png","webpack:///./src/assets/GooglePlay.png","webpack:///./src/assets/Blue/blue-measurements-drusenHalf-icon.png","webpack:///./src/assets/zoom-icon.png","webpack:///./src/assets/red-green-circles-icon.png","webpack:///./src/assets/measurements-PDT-icon.png","webpack:///./src/assets/Physician - Drak Gray - Selected.png","webpack:///./src/assets/AXIS_Favicon_green.png","webpack:///./src/assets/theme2.png","webpack:///./src/assets/theme1.png","webpack:///./src/assets/Gray/gray-measurements-drusenHalf-icon.png","webpack:///./src/assets/Blue/Download - Blue - Selected.png","webpack:///./src/assets/White Icons/white-90rotate-icon.svg","webpack:///./src/assets/Blue/Manual Exam Upload - Blue.png","webpack:///./src/assets/Drop Down Menu - Green.png","webpack:///./src/assets/rgb-icon.png","webpack:///./src/assets/Gray/markImages-Icon-gray.svg","webpack:///./src/assets/Green/green-pencil-ruler-icon.png","webpack:///./src/assets/Delete - White.png","webpack:///./src/assets/Gray/requestsupport-gray.svg","webpack:///./src/assets/Gray/Download - Light Gray - Selected.png","webpack:///./src/assets/Physician - Green.png","webpack:///./src/assets/multiImage-icon.png","webpack:///./src/assets/Blue/blue-outlinebox-icon.png","webpack:///./src/assets/removeImages-icon.png","webpack:///./src/assets/montage-icon.png","webpack:///./src/helpers/popup.js","webpack:///./src/assets/Green/AdvanceGreen&Black.png","webpack:///./src/assets/Green/shapeOutline_green.png","webpack:///./src/assets/pdfIcon.png","webpack:///./src/assets/Green/Add Patient - Green - Selected.png","webpack:///./src/assets/Blue/blue-type-icon.png","webpack:///./src/assets/White Icons/annotate-white-icon.png","webpack:///./src/assets/Green/green-trash-icon.png","webpack:///./src/assets/Delete - Pink - Selected.png","webpack:///./src/assets/Green/Advanced Search - Green - Selected.png","webpack:///./src/assets/Blue/blue-measurements-PDT-icon.png","webpack:///./src/assets/measurements-standardCircles34-icon.png","webpack:///./src/assets/Gray/Minimize_Icon_April_2022_gray.png","webpack:///./src/assets/Blue/Devices-background-blue.svg","webpack:///./src/assets/AXIS Logo for Light Backgrounds - Cropped.png","webpack:///./src/assets/Green/green-cursor-icon.png","webpack:///./src/assets sync ^\\.\\/.*$","webpack:///./src/assets/Blue/calendar-blue.svg","webpack:///./src/assets/Close - Gray - Selected.png","webpack:///./src/assets/Blue/printbutton-blue.svg","webpack:///./src/assets/Green/green-stereo-icon.png","webpack:///./src/assets/Gray/Users-background-gray.svg","webpack:///./src/assets/Green/green-save-icon.png","webpack:///./src/assets/Green/calendar-green.svg","webpack:///./src/assets/hand-icon.png","webpack:///./src/assets/redacted-icon.png","webpack:///./src/assets/Green/Delete - Green.png","webpack:///./src/assets/Gray/Diagnosis - Medium Gray - Selected.png","webpack:///./src/assets/Teaching-Research Case - White - Selected.png","webpack:///./src/assets/Teaching Case Icon.png","webpack:///./src/assets/Configure-background.svg","webpack:///./src/assets/Blue/Drop Down Menu - Blue - Selected.png","webpack:///./src/assets/Gray/Exams-background-gray.svg","webpack:///./src/assets/Green/reports-icon-green.svg","webpack:///./src/assets/Drop Down Menu - Green - Selected.png","webpack:///./src/assets/Diagnosis - White.png","webpack:///./src/assets/AXIS Logo for Dark Backgrounds - Green.png","webpack:///./src/assets/editText-icon.png","webpack:///./src/assets/Gray/Advanced Search - Gray - Selected.png","webpack:///./src/assets/Gray/gray-measurements-standardCircles34-icon.png","webpack:///./src/canvas/annotations/line.js","webpack:///./src/canvas/annotations/arrow.js","webpack:///./src/canvas/annotations/text.js","webpack:///./src/canvas/annotations/redaction.js","webpack:///./src/canvas/annotations/outlinebox.js","webpack:///./src/canvas/annotations/segmentChain.js","webpack:///./src/canvas/annotations/freeHand.js","webpack:///./src/canvas/annotations/angle.js","webpack:///./src/canvas/annotations/measurementText.js","webpack:///./src/canvas/annotations/lengthLine.js","webpack:///./src/canvas/annotations/ellipse.js","webpack:///./src/canvas/annotations/area.js","webpack:///./src/canvas/annotations/cupToDisc.js","webpack:///./src/canvas/annotations/segmentChainArea.js","webpack:///./src/canvas/annotations/freeHandArea.js","webpack:///./src/canvas/annotations/circle.js","webpack:///./src/canvas/annotations/circleCollection.js","webpack:///./src/canvas/annotations/standardCircles1.js","webpack:///./src/canvas/annotations/standardCircles2.js","webpack:///./src/canvas/annotations/drusenCircles1.js","webpack:///./src/canvas/annotations/drusenCircles2.js","webpack:///./src/canvas/annotations/drusenCircles3.js","webpack:///./src/canvas/annotations/drusenCircles4.js","webpack:///./src/canvas/annotations/pdt.js","webpack:///./src/canvas/annotations/etdrsGrid.js","webpack:///./src/canvas/annotations/continuousDraw.js","webpack:///./src/canvas/annotations/rectangle.js","webpack:///./src/canvas/canvasUtils.js","webpack:///./src/assets/Manual Exam Upload - Green.png","webpack:///./src/assets/Physician - Blue - Selected.png","webpack:///./src/assets/Manual Exam Upload - Blue - Selected.png","webpack:///./src/assets/arrow-line-icon.png","webpack:///./src/assets/Sonomed Escalon Logo for Dark Backgrounds.png","webpack:///./src/assets/Blue/reports-icon-blue.svg","webpack:///./src/assets/Calendar_-_Blue.png","webpack:///./src/assets/Close - Gray.png","webpack:///./src/assets/AXIS_Favicon_green_16x16.png","webpack:///./src/assets/requestSupport-icon.png","webpack:///./src/assets/measurements-freehandArea-icon.png","webpack:///./src/assets/White Icons/shapeOutline_white.png","webpack:///./src/assets/Physician - Pink - Selected.png","webpack:///./src/assets/Blue/Users-background-blue.svg","webpack:///./src/assets/Physicians-background.svg","webpack:///./src/assets/Gray/montage-icon-gray.svg","webpack:///./src/assets/Download - Light Gray - Selected.png","webpack:///./src/assets/Green/Download - Green.png","webpack:///./src/assets/Proofsheet - Green - Selected.png","webpack:///./src/assets/White Icons/measurements-PDT-icon.png","webpack:///./src/assets/Green/Download - Green - Selected.png","webpack:///./src/assets/Physician - Pink.png","webpack:///./src/assets/White Icons/measurements-etdrsGrid-icon.png","webpack:///./src/assets/Green/green-hand-icon.png","webpack:///./src/assets/White Icons/outlinebox-white-icon.png","webpack:///./src/assets/Green/green-90rotate-icon.png","webpack:///./src/assets/Blue/blue-90rotate-icon-01.svg","webpack:///./src/assets/Green/green-measurements-PDT-icon.png","webpack:///./src/assets/Gray/Delete - Medium Gray.png","webpack:///./src/assets/Teaching-Research Case - Dark Gray - Selected.png","webpack:///./src/assets/Drop Down Menu - Gray.png","webpack:///./src/assets/AXIS_Favicon_green_32x32.png","webpack:///./src/assets/Gray/reports-icon-gray.svg","webpack:///./src/assets/theme3.png","webpack:///./src/assets/Green/green-measurements-standardCircles34-icon.png","webpack:///./src/assets/Gray/AdvanceGray&White.png","webpack:///./src/assets/Green/green-squiggly-icon.png","webpack:///./src/assets/Green/Add Patient - Green.png","webpack:///./src/assets/Blue/blue-contDrawing-icon.png","webpack:///./src/assets/measurements-standardCircles-icon.png","webpack:///./src/assets/Gray/Teaching-Research Case - Medium Gray - Selected.png","webpack:///./src/assets/White Icons/reset-whiteIcon.png","webpack:///./src/assets/Diagnosis - Pink - Selected.png","webpack:///./src/assets/Download - Pink.png","webpack:///./src/assets/blue-90rotate-icon.svg","webpack:///./src/assets/Gray/gray-crop-icon.png","webpack:///./src/assets/Blue/Microphone - Blue - Selected.png","webpack:///./src/assets/Gray/gray-sideBySide-icon.png","webpack:///./src/components/controls/CloseButton.vue?27f8","webpack:///src/components/controls/CloseButton.vue","webpack:///./src/components/controls/CloseButton.vue?1629","webpack:///./src/components/controls/CloseButton.vue","webpack:///./src/assets/red-normal-icon.png","webpack:///./src/assets/Refresh - Pink.png","webpack:///./src/assets/Green/Proofsheet - Green.png","webpack:///./src/assets/blue-squareArea-icon.png","webpack:///./src/assets/Download - White.png","webpack:///./src/assets/Blue/Expand_Icon_April_2022_blue.png","webpack:///./src/assets/Refresh - Green.png","webpack:///./src/assets/Blue/blue-measurements-drusen1-icon.png","webpack:///./src/assets/White Icons/measurements-drusen1-icon.png","webpack:///./src/assets/White Icons/measurements-drusen3-icon.png","webpack:///./src/assets/Blue/Physician - Blue.png","webpack:///./src/assets/reset-icon.png","webpack:///./src/assets/Gray/gray-small-icon.png","webpack:///./src/assets/Blue/Calendar_-_Blue.png","webpack:///./src/assets/Proofsheet - Pink - Selected.png","webpack:///./src/assets/Gray/Multiview - Gray - Selected.png","webpack:///./src/assets/Gray/gray-90rotate-icon.svg","webpack:///./src/assets/Microphone - Blue - Selected.png","webpack:///./src/assets/Teaching-Research Case - Green - Selected.png","webpack:///./src/assets/Download - Blue - Selected.png","webpack:///./src/assets/Green/green-big-icon.png","webpack:///./src/assets/Drop Down Menu - Gray - Selected.png","webpack:///./src/assets/blue-small-icon.png","webpack:///./src/assets/Advanced Search - Gray - Selected.png","webpack:///./src/assets/Gray/Close - Gray.png","webpack:///./src/assets/Green/Exams-background-green.svg","webpack:///./src/assets/Gray/gray-measurements-freehandArea-icon.png","webpack:///./src/assets/Green/green-arrow-line-icon.png","webpack:///./src/assets/markImages-icon.png","webpack:///./src/assets/White Icons/Expand_Icon_April_2022_white.png","webpack:///./src/assets/Edit Patient - Green - Selected.png","webpack:///./src/assets/Multiview - Blue.png","webpack:///./src/assets/Refresh - Green - Selected.png","webpack:///./src/assets/Drop Down Menu - Pink.png","webpack:///./src/assets/Gray/Diagnosis - Gray.png","webpack:///./src/assets/bw-circle-icon.png","webpack:///./src/assets/Green/green-Return to Single View - Icon.png","webpack:///./src/assets/Exams-background.svg","webpack:///./src/assets/squiggly-icon.png","webpack:///./src/assets/Edit Patient - Gray - Selected.png","webpack:///./src/helpers/browserDetect.js","webpack:///./src/store/state.js","webpack:///./src/helpers/idle.js","webpack:///./src/helpers/blobsaver.js","webpack:///./src/helpers/appInterface.js","webpack:///./src/imageBrowserContext/imageContextBase.js","webpack:///./src/imageBrowserContext/imageContext.js","webpack:///./src/imageBrowserContext/octContextBase.js","webpack:///./src/imageBrowserContext/octUtils.js","webpack:///./src/imageBrowserContext/volumeContextBase.js","webpack:///./src/imageBrowserContext/spectralisContext.js","webpack:///./src/imageBrowserContext/cirrusContext.js","webpack:///./src/imageBrowserContext/rasterContext.js","webpack:///./src/imageBrowserContext/spectralisComparisonViewContext.js","webpack:///./src/imageBrowserContext/cirrusComparisonViewContext.js","webpack:///./src/imageBrowserContext/rasterComparisonViewContext.js","webpack:///./src/imageBrowserContext/comparisonContextBase.js","webpack:///./src/imageBrowserContext/spectralisComparisonBrowserContext.js","webpack:///./src/imageBrowserContext/cirrusComparisonBrowserContext.js","webpack:///./src/imageBrowserContext/hvfView.js","webpack:///./src/imageBrowserContext/hvfContext.js","webpack:///./src/imageBrowserContext/hvfMultiviewContext.js","webpack:///./src/imageBrowserContext/contextFactory.js","webpack:///./src/imageBrowserContext/StereoContext.js","webpack:///./src/imageBrowserContext/SideBySideContext.js","webpack:///./src/imageBrowserContext/print.js","webpack:///./src/imageBrowserContext/PrintPreviewContext.js","webpack:///./src/store/actions/helpers.js","webpack:///./src/store/actions/authActions.js","webpack:///./src/store/actions/actions.js","webpack:///./src/store/actions/getPatientExamActions.js","webpack:///./src/store/actions/getHelpCenterActions.js","webpack:///./src/store/actions/getImageActions.js","webpack:///./src/imageBrowserContext/PatientExamMultiviewContext.js","webpack:///./src/store/actions/multiviewActions.js","webpack:///./src/imageBrowserContext/ProofsheetContext.js","webpack:///./src/store/actions/proofsheetActions.js","webpack:///./src/store/actions/deepDeeActions.js","webpack:///./src/imageBrowserContext/PlaceholderContext.js","webpack:///./src/imageBrowserContext/overlayBrowserContext.js","webpack:///./src/store/mutations.js","webpack:///./src/store/getters.js","webpack:///./src/store/axiosSetup.js","webpack:///./src/store/index.js","webpack:///./src/assets/Gray/gray-multiImage-icon.png","webpack:///./src/assets/White Icons/white-small-icon.png","webpack:///./src/assets/Download - Medium Gray.png","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/Gray/gray-print-icon.png","webpack:///./src/assets/Teaching-Research Case - Light Gray.png","webpack:///./src/assets/Green/green-measurements-area-icon.png","webpack:///./src/assets/Teaching-Research Case - Medium Gray.png","webpack:///./src/canvas/annotations/magnifier.js","webpack:///./src/assets/Gray/Manual Exam Upload - Gray - Selected.png","webpack:///./src/assets/Delete - Pink.png","webpack:///./src/assets/Green/green-compass-icon.png","webpack:///./src/assets/Edit Patient - Pink - Selected.png","webpack:///./src/assets/Green/green-multiImage-icon.png","webpack:///./src/assets/pencil-ruler-icon.png","webpack:///./src/assets/Blue/shapeFill_blue.png","webpack:///./src/assets/Green/Drop Down Menu - Green.png","webpack:///./src/assets/Refresh - Pink - Selected.png","webpack:///./src/assets/Close - Blue.png","webpack:///./src/assets/Green/Close - Green.png","webpack:///./src/assets/blue-normal-icon.png","webpack:///./src/assets/Green/Microphone - Green.png","webpack:///./src/assets/Green/Multiview - Green - Selected.png","webpack:///./src/assets/Green/green-squareArea-icon.png","webpack:///./src/assets/Blue/blue-small-icon.png","webpack:///./src/assets/overlay-icon.png","webpack:///./src/assets/Gray/Drop Down Menu - Gray.png","webpack:///./src/assets/Gray/Edit Patient - Gray - Selected.png","webpack:///./src/assets/Blue/removeimages-blue.svg","webpack:///./src/assets/Blue/Microphone - Blue.png","webpack:///./src/assets/Blue/Multiview - Blue.png","webpack:///./src/assets/CSV-icon.svg","webpack:///./src/assets/Blue/Teaching-Research Case - Blue.png","webpack:///./src/assets/Blue/blue-reset-icon.png","webpack:///./src/assets/Blue/highlighter-icon-blue.png","webpack:///./src/assets/Green/green-90rotate-icon.svg","webpack:///./src/assets/Green/green-measurements-etdrsGrid-icon.png","webpack:///./src/assets/180-rotate-icon.png","webpack:///./src/assets/Gray/gray-reset-icon.png","webpack:///./src/assets/White Icons/white-90-rotate-clockwise-icon(1).png","webpack:///./src/assets/AXIS Logo for Light Backgrounds.png","webpack:///./src/assets/green-normal-icon.png","webpack:///./src/App.vue?6519","webpack:///./src/components/misc/StatusSnackbar.vue?8e18","webpack:///src/components/misc/StatusSnackbar.vue","webpack:///./src/components/misc/StatusSnackbar.vue?6a40","webpack:///./src/components/misc/StatusSnackbar.vue","webpack:///./src/components/dialogs/AutoLogoutModal.vue?5c23","webpack:///src/components/dialogs/AutoLogoutModal.vue","webpack:///./src/components/dialogs/AutoLogoutModal.vue?ae3d","webpack:///./src/components/dialogs/AutoLogoutModal.vue","webpack:///./src/components/misc/LoadingOverlay.vue?b452","webpack:///src/components/misc/LoadingOverlay.vue","webpack:///./src/components/misc/LoadingOverlay.vue?bfb6","webpack:///./src/components/misc/LoadingOverlay.vue","webpack:///src/App.vue","webpack:///./src/App.vue?0bd2","webpack:///./src/App.vue?4f7e","webpack:///./src/plugins/vuetify.js","webpack:///./src/validationRules/inPast.js","webpack:///./src/validationRules/date.js","webpack:///./src/components/mixins/ColorThemeMixin.js","webpack:///./src/main.js","webpack:///./src/assets/Green/ZoomGreen&Black.png","webpack:///./src/assets/Delete - Green.png","webpack:///./src/assets/Delete - White - Selected.png","webpack:///./src/assets/Download - Pink - Selected.png","webpack:///./src/canvas/geometry.js","webpack:///./src/canvas/annotations/annotation.js","webpack:///./src/assets/Blue/Physician - Blue - Selected.png","webpack:///./src/assets/Gray/Refresh - Gray - Selected.png","webpack:///./src/assets/Blue/blue-sideBySide-icon.png","webpack:///./src/App.vue?f399","webpack:///./src/assets/White Icons/erase-annotations-icon.png","webpack:///./src/assets/Close - Green.png","webpack:///./src/assets/Gray/gray-save-icon.png","webpack:///./src/assets/Blue/Add Patient - Blue - Selected.png","webpack:///./src/assets/Manual Exam Upload - Gray - Selected.png","webpack:///./src/assets/Advanced Search - Pink.png","webpack:///./src/assets/Images-background.svg","webpack:///./src/assets/White Icons/measurements-standardCircles34-icon.png","webpack:///./src/assets/measurements-drusenHalf-icon.png","webpack:///./src/assets/Gray/gray-hand-icon.png","webpack:///./src/assets/Advanced Search - Pink - Selected.png","webpack:///./src/assets/Blue/blue-squiggly-icon.png","webpack:///./src/assets/Refresh - Blue.png","webpack:///./src/assets/Teaching-Research Case - White.png","webpack:///./src/assets/Gray/gray-squareArea-icon.png","webpack:///./src/assets/Blue/blue-Submit.png","webpack:///./src/assets/save-icon.png","webpack:///./src/assets/Blue/Delete_Blue.png","webpack:///./src/assets/White Icons/ZoomWhite&Black.png","webpack:///./src/assets/Download - White - Selected.png","webpack:///./src/assets/AXIS_Favicon_silver_16x16.png","webpack:///./src/assets/Delete - Dark Gray - Selected.png","webpack:///./src/assets/Gray/Add Patient - Gray - Selected.png","webpack:///./src/assets/Calendar - Blue - Selected.png","webpack:///./src/assets/Gray/Manual Exam Upload - Gray.png","webpack:///./src/assets/Green/green-sideBySide-icon.png","webpack:///./src/assets/sideBySide-icon.png","webpack:///./src/assets/stereo-icon.png","webpack:///./src/assets/Add Patient - Blue.png","webpack:///./src/components/2fa/TokenModal.vue?1860","webpack:///./src/canvas/annotations/interactiveAnnotation.js","webpack:///./src/assets/Devices-background.svg","webpack:///./src/assets/Green/Advanced Search - Green.png","webpack:///./src/assets/White Icons/arrow-whiteIcon.png","webpack:///./src/assets/Diagnosis - Pink.png","webpack:///./src/assets/Green/Expand_Icon_April_2022_green.png","webpack:///./src/assets/Green/green-measurements-freehandArea-icon.png","webpack:///./src/assets/Gray/shapeFill_gray.png","webpack:///./src/assets/Green/montage-icon-green.svg","webpack:///./src/assets/Blue/Physicians-background-blue.svg","webpack:///./src/assets/Diagnosis - Green.png","webpack:///./src/assets/Gray/gray-contDrawing-icon.png","webpack:///./src/assets/Green/registerreturn-icon-green.svg","webpack:///./src/assets/Gray/Download - Medium Gray.png","webpack:///./src/assets/Physician - Medium Gray.png","webpack:///./src/assets/Proofsheet - Blue.png","webpack:///./src/assets/Blue/Configure-background-blue.svg","webpack:///./src/assets/Multiview - Gray - Selected.png","webpack:///./src/assets/Blue/Download - Blue.png","webpack:///./src/assets/INF.png","webpack:///./src/assets/compass-icon.png","webpack:///./src/assets/Blue/blue-redacted-icon.png","webpack:///./src/assets/Physician - White - Selected.png","webpack:///./src/assets/Refresh - Blue - Selected.png","webpack:///./src/assets/Trash.png","webpack:///./src/assets/Green/green-overlay-icon.png","webpack:///./src/assets/Green/Physician - Green - Selected.png","webpack:///./src/assets/Blue/blue-crop-icon.png","webpack:///./src/assets/White Icons/measurements-line-icon.png","webpack:///./src/assets/Green/Multiview - Green.png","webpack:///./src/assets/Blue/AdvanceBlue&Black.png","webpack:///./src/assets/Gray/Teaching-Research Case - Gray.png","webpack:///./src/assets/Delete - Light Gray - Selected.png","webpack:///./src/assets/Blue/blue-measurements-etdrsGrid-icon.png","webpack:///./src/assets/Blue/blue-measurements-standardCircles-icon.png","webpack:///./src/assets/Teaching-Research Case - Pink - Selected.png","webpack:///./src/assets/Diagnosis - White - Selected.png","webpack:///./src/assets/Close - Green - Selected.png","webpack:///./src/assets/rgb-circles-icon.png","webpack:///./src/assets/Blue/ZoomBlue&Black.png","webpack:///./src/assets/Gray/ZoomGray&Black.png","webpack:///./src/assets/Blue/blue-compass-icon.png","webpack:///./src/assets/Blue/Submit_-_Blue.png","webpack:///./src/assets/Gray/gray-measurements-etdrsGrid-icon.png","webpack:///./src/assets/Blue/downloadCircle-icon-blue.svg","webpack:///./src/assets/Teaching-Research Case - Pink.png","webpack:///./src/assets/Blue/Advanced Search - Blue - Selected.png","webpack:///./src/assets/Blue/montage-icon-blue.svg","webpack:///./src/assets/Gray/gray-erase-annotations-icon.png","webpack:///./src/assets/Gray/gray-overlay-icon.png","webpack:///./src/assets/Green/green-measurements-cupdisc-icon.png","webpack:///./src/assets/White Icons/arrow-white-icon.png","webpack:///./src/assets/Blue/markImages-Icon-blue.svg","webpack:///./src/assets/Gray/gray-measurements-standardCircles-icon.png","webpack:///./src/assets/Edit Patient - Green.png","webpack:///./src/assets/Gray/Physician - Gray.png","webpack:///./src/assets/Green/highlighter-icon-green.png","webpack:///./src/assets/Download - Light Gray.png","webpack:///./src/assets/Add Patient - Gray.png","webpack:///./src/assets/Download - Dark Gray.png","webpack:///./src/views/LoginPage.vue?f315","webpack:///./src/assets/Multiview - Green.png","webpack:///./src/assets/Microphone - Green - Selected.png","webpack:///./src/assets/Gray/gray-pencil-ruler-icon.png","webpack:///./src/assets/Green/Drop Down Menu - Green - Selected.png","webpack:///./src/assets/Green/green-outlinebox-icon.png","webpack:///./src/assets/Gray/ZoomGray&White.png","webpack:///./src/assets/White Icons/hand-white-icon.png","webpack:///./src/assets/measurements-area-icon.png","webpack:///./src/assets/Blue/blue-180-rotate-icon.png","webpack:///./src/assets/Gray/gray-zoom-icon.png","webpack:///./src/assets/green-drop-icon.png","webpack:///./src/assets/returnToSingleView-icon.png","webpack:///./src/assets/Blue/blue-measurements-area-icon.png","webpack:///./src/assets/Gray/gray-180-rotate-icon.png","webpack:///./src/assets/Diagnosis - Light Gray - Selected.png","webpack:///./src/assets/Blue/blue-cursor-icon.png","webpack:///./src/assets/Microphone - Blue.png","webpack:///./src/assets/Teaching-Research Case - Light Gray - Selected.png","webpack:///./src/assets/Add Patient - Pink - Selected.png","webpack:///./src/assets/appStoreDark.png","webpack:///./src/assets/Edit Patient - Gray.png","webpack:///./src/assets/Drop Down Menu - Pink - Selected.png","webpack:///./src/assets/White Icons/white-big-icon.png","webpack:///./src/assets/PDF-icon.svg","webpack:///./src/assets/Green/green-redacted-icon.png","webpack:///./src/assets/White Icons/highlighter-icon-white.png","webpack:///./src/assets/Blue/Refresh - Blue.png","webpack:///./src/assets/White Icons/measurements-area-icon.png","webpack:///./src/assets/Exams.svg","webpack:///./src/assets/Green/green-reset-icon.png","webpack:///./src/assets/Blue/Diagnosis - Blue.png","webpack:///./src/assets/Close - Pink - Selected.png","webpack:///./src/assets/Gray/Multiview - Gray.png","webpack:///./src/assets/Teaching-Research Case - Medium Gray - Selected.png","webpack:///./src/assets/Green/Refresh - Green - Selected.png","webpack:///./src/canvas/canvasRenderer.js","webpack:///./src/assets/Physician - Medium Gray - Selected.png","webpack:///./src/assets/Gray/gray-measurements-cupdisc-icon.png","webpack:///./src/assets/Blue/Advanced Search - Blue.png","webpack:///./src/assets/Blue/blue-multiImage-icon.png","webpack:///./src/assets/Gray/gray-measurements-drusen1-icon.png","webpack:///./src/assets/Green/green-print-icon.png","webpack:///./src/assets/reports-icon.png","webpack:///./src/assets/White Icons/measurements-freehandArea-icon.png","webpack:///./src/assets/Teaching-Research Case - Blue - Selected.png","webpack:///./src/assets/Green/green-measurements-drusenHalf-icon.png","webpack:///./src/assets/Diagnosis - Medium Gray.png","webpack:///./src/assets/blue-drop-icon.png","webpack:///./src/assets/Refresh - Gray - Selected.png","webpack:///./src/assets/AXIS Logo for Dark Backgrounds - Grayscale.png","webpack:///./src/assets/Blue/shapeOutline_blue.png","webpack:///./src/assets/Blue/Calendar - Blue - Selected.png","webpack:///./src/assets/Blue/blue-save-icon.png","webpack:///./src/assets/Green/Diagnosis - Green - Selected.png","webpack:///./src/assets/measurements-drusen3-icon.png","webpack:///./src/assets/Gray/gray-outlinebox-icon.png","webpack:///./src/assets/LaunchExample.png","webpack:///./src/assets/Refresh - Gray.png","webpack:///./src/assets/Gray/gray-90rotate-icon.png","webpack:///./src/assets/measurements-cupdisc-icon.png","webpack:///./src/assets/Gray/Delete - Medium Gray - Selected.png","webpack:///./src/config/config.js","webpack:///./src/assets/Microphone - Pink - Selected.png","webpack:///./src/assets/Manual Exam Upload - Green - Selected.png","webpack:///./src/assets/Diagnosis - Green - Selected.png","webpack:///./src/assets/Diagnosis - Dark Gray.png","webpack:///./src/views/LoginPage.vue?38bd","webpack:///./src/components/2fa/TokenModal.vue?1404","webpack:///src/components/2fa/TokenModal.vue","webpack:///./src/components/2fa/TokenModal.vue?ad34","webpack:///./src/components/2fa/TokenModal.vue?e28a","webpack:///src/views/LoginPage.vue","webpack:///./src/views/LoginPage.vue?c4da","webpack:///./src/views/LoginPage.vue?03b6","webpack:///./src/views/SSO.vue?8da8","webpack:///./src/components/mixins/SSO.js","webpack:///./src/components/misc/SSOBody.vue?04e9","webpack:///./src/components/misc/SSOBody.vue?ab4e","webpack:///src/views/SSO.vue","webpack:///./src/views/SSO.vue?0c2b","webpack:///./src/views/SSO.vue","webpack:///./src/views/ValidateJWT.vue?41cb","webpack:///src/views/ValidateJWT.vue","webpack:///./src/views/ValidateJWT.vue?6aab","webpack:///./src/views/ValidateJWT.vue","webpack:///./src/router/routes.js","webpack:///./src/router/index.js","webpack:///./src/assets/White Icons/compass-white-icon.png","webpack:///./src/assets/Green/Physicians-background-green.svg","webpack:///./src/assets/Gray/Proofsheet - Gray - Selected.png","webpack:///./src/helpers/utils.js","webpack:///./src/assets/proofsheet-buttonIcon.png","webpack:///./src/assets/Gray/gray-stereo-icon.png","webpack:///./src/assets/Green/green-crop-icon.png","webpack:///./src/helpers/dateUtils.js","webpack:///./src/assets/Green/Edit Patient - Green - Selected.png","webpack:///./src/assets/Gray/printbutton-gray.svg","webpack:///./src/assets/cursor-icon.png","webpack:///./src/assets/Green/requestsupport-green.svg","webpack:///./src/assets/Gray/downloadCircle-icon-gray.svg","webpack:///./src/assets/Edit Patient - Blue - Selected.png","webpack:///./src/assets/Blue/returnToAdmin-icon-blue.svg","webpack:///./src/assets/Blue/Add Patient - Blue.png","webpack:///./src/assets/White Icons/measurements-cupdisc-icon.png","webpack:///./src/assets/measurements-drusen1-icon.png","webpack:///./src/assets/Gray/gray-type-icon.png","webpack:///./src/assets/White Icons/print-white-icon.png","webpack:///./src/assets/Teaching-Research Case - Dark Gray.png","webpack:///./src/assets/White Icons/magnify-white-icon.png","webpack:///./src/assets/Blue/blue-arrow-line-icon.png","webpack:///./src/assets/Green/ZoomGreen&White.png","webpack:///./src/assets/Gray/gray-measurements-drusen2-icon.png","webpack:///./src/assets/Blue/Exams-background-blue.svg","webpack:///./src/assets/White Icons/rotate-white-icon.png","webpack:///./src/assets/Edit Patient - Pink.png","webpack:///./src/assets/Microphone - Pink.png","webpack:///./src/assets/Gray/gray-trash-icon.png","webpack:///./src/assets/Download - Green.png","webpack:///./src/assets/Gray/gray-measurements-PDT-icon.png","webpack:///./src/assets/AXIS Logo for Dark Backgrounds - Cropped - Green.png","webpack:///./src/canvas/annotations/deepDeeAnalysisChart.js","webpack:///./src/assets/White Icons/white-squareArea-icon.png","webpack:///./src/assets/AppStore.png","webpack:///./src/assets/Add Patient - Pink.png","webpack:///./src/assets/Proofsheet - Pink.png","webpack:///./src/assets/Green/AdvanceGreen&White.png","webpack:///./src/assets/Drop Down Menu - Blue - Selected.png","webpack:///./src/assets/blue-90rotate-icon.png","webpack:///./src/assets/trash-icon.png","webpack:///./src/assets/Blue/Minimize_Icon_April_2022_blue.png","webpack:///./src/assets/Advanced Search - Blue - Selected.png","webpack:///./src/assets/blue-pencil-icon.png","webpack:///./src/assets/Green/green-measurements-line-icon.png","webpack:///./src/assets/Diagnosis - Dark Gray - Selected.png","webpack:///./src/assets/Blue/Refresh - Blue - Selected.png","webpack:///./src/assets/erase-annotations-icon.png","webpack:///./src/assets/Blue/blue-90rotate-icon.png","webpack:///./src/assets/Blue/Multiview - Blue - Selected.png","webpack:///./src/assets/Gray/Physicians-background-gray.svg","webpack:///./src/assets/type-icon.png","webpack:///./src/assets/White Icons/Minimize_Icon_April_2022_white.png","webpack:///./src/assets/Close - Pink.png","webpack:///./src/assets/Green/removeimages-green.svg","webpack:///./src/assets/White Icons/shapeFill_white.png","webpack:///./src/assets/White Icons/measurements-drusenHalf-icon.png","webpack:///./src/assets/Edit Patient - Blue.png","webpack:///./src/assets/Green/Users-background-green.svg","webpack:///./src/assets/Blue/blue-overlay-icon.png","webpack:///./src/assets/Multiview - Gray.png","webpack:///./src/assets/White Icons/test-white-icon.png","webpack:///./src/assets/Gray/gray-measurements-area-icon.png","webpack:///./src/assets/Gray/Download - Medium Gray - Selected.png","webpack:///./src/assets/Green/green-zoom-icon.png","webpack:///./src/assets/blue-contDrawing-icon.png","webpack:///./src/assets/Green/Teaching-Research Case - Green - Selected.png","webpack:///./src/assets/Proofsheet - Green.png","webpack:///./src/assets/Gray/gray-cursor-icon.png","webpack:///./src/assets/Multiview - Icon.png","webpack:///./src/assets/Download - Blue.png","webpack:///./src/assets/Users-background.svg","webpack:///./src/assets/Gray/Close - Gray - Selected.png","webpack:///./src/assets/Green/green-Submit.png","webpack:///./src/assets/Gray/AdvanceGray&Black.png","webpack:///./src/assets/Green/printbutton-green.svg","webpack:///./src/assets/Green/green-erase-annotations-icon.png","webpack:///./src/assets/Blue/requestsupport-blue.svg","webpack:///./src/assets/Patients-background.svg","webpack:///./src/assets/Green/Microphone - Green - Selected.png","webpack:///./src/assets/Blue/Teaching-Research Case - Blue - Selected.png","webpack:///./src/assets/Gray/gray-Submit.png","webpack:///./src/assets/Blue/Edit Patient - Blue - Selected.png","webpack:///./src/assets/Gray/gray-compass-icon.png","webpack:///./src/assets/Green/returnToAdmin-icon-green.svg","webpack:///./src/assets/Microphone - Green.png","webpack:///./src/assets/White Icons/measurements-drusen2-icon.png","webpack:///./src/assets/Blue/blue-Return to Single View - Icon.jpg","webpack:///./src/assets/Physician - Drak Gray.png","webpack:///./src/assets/Diagnosis - Light Gray.png","webpack:///./src/assets/download-icon.png","webpack:///./src/assets/rgb-normal-icon.png","webpack:///./src/assets/Green/Teaching-Research Case - Green.png","webpack:///./src/assets/Users.svg","webpack:///./src/assets/Blue/blue-print-icon.png","webpack:///./src/assets/Proofsheet - Blue - Selected.png","webpack:///./src/assets/Gray/Add Patient - Gray.png","webpack:///./src/assets/Microphone - White.png","webpack:///./src/assets/Green/green-type-icon.png","webpack:///./src/assets/Physician - Green - Selected.png","webpack:///./src/assets/crop-icon.png","webpack:///./src/assets/red-icon.png","webpack:///./src/assets/Blue/blue-pencil-ruler-icon.png","webpack:///./src/assets/Delete - Medium Gray - Selected.png","webpack:///./src/assets/Green/Refresh - Green.png","webpack:///./src/assets/Microphone - White - Selected.png","webpack:///./src/assets/Blue/Manual Exam Upload - Blue - Selected.png","webpack:///./src/assets/Delete - Dark Gray.png","webpack:///./src/assets/print-icon.png","webpack:///./src/assets/Advanced Search - Blue.png","webpack:///./src/assets/Blue/blue-measurements-drusen3-icon.png","webpack:///./src/assets/Blue/blue-stereo-icon.png","webpack:///./src/assets/Green/Configure-background-green.svg","webpack:///./src/assets/Green/green-small-icon.png","webpack:///./src/assets/Green/green-measurements-drusen3-icon.png","webpack:///./src/assets/blue-icon.png","webpack:///./src/assets/Physician - Light Gray.png","webpack:///./src/assets/downloadCircle-icon.png","webpack:///./src/assets/Gray/Download - Gray.png","webpack:///./src/assets/Green/Proofsheet - Green - Selected.png","webpack:///./src/assets/White Icons/rgb-white-icon.png","webpack:///./src/assets/Download - Medium Gray - Selected.png","webpack:///./src/assets/AXIS Logo for Dark Backgrounds - Cropped - Grayscale.png","webpack:///./src/assets/Green/green-measurements-standardCircles-icon.png","webpack:///./src/assets/Gray/gray-measurements-drusen3-icon.png","webpack:///./src/assets/Gray/gray-arrow-line-icon.png","webpack:///./src/assets/Blue/blue-squareArea-icon.png","webpack:///./src/assets/White Icons/download-whiteIcon.png","webpack:///./src/assets/Green/downloadCircle-icon-green.svg","webpack:///./src/assets/measurements-etdrsGrid-icon.png","webpack:///./src/assets/Add Patient - Green.png","webpack:///./src/assets/Diagnosis - Blue - Selected.png","webpack:///./src/assets/registerReturn-icon.png","webpack:///./src/assets/Green/Edit Patient - Green.png","webpack:///./src/assets/Close - Blue - Selected.png","webpack:///./src/assets/Download - Green - Selected.png","webpack:///./src/assets/Multiview - Pink - Selected.png","webpack:///./src/assets/Add Patient - Gray - Selected.png","webpack:///./src/assets/Physician - White.png","webpack:///./src/assets/Gray/gray-pencil-icon.png","webpack:///./src/assets/Gray/highlighter-icon-gray.png","webpack:///./src/assets/Blue/Proofsheet - Blue - Selected.png","webpack:///./src/assets/Return to Single View - Icon.jpg","webpack:///./src/assets/Blue/blue-measurements-line-icon.png","webpack:///./src/assets/White Icons/save-white-icon.png","webpack:///./src/assets/Diagnosis - Blue.png","webpack:///./src/assets/Gray/Microphone - Gray.png","webpack:///./src/assets/Green/green-contDrawing-icon.png","webpack:///./src/assets/Green/Physician - Green.png","webpack:///./src/assets/Gray/gray-Return to Single View - Icon.png","webpack:///./src/assets/Green/shapeFill_green.png","webpack:///./src/assets/printButton-icon.png","webpack:///./src/assets/measurements-line-icon.png","webpack:///./src/assets/Blue/Drop Down Menu - Blue.png","webpack:///./src/helpers/patientRefresh.js","webpack:///./src/assets/Delete - Light Gray.png","webpack:///./src/assets/White Icons/white-bulb-icon.png","webpack:///./src/assets/Gray/gray-big-icon.png","webpack:///./src/assets/White Icons/white-contDrawing-icon.png","webpack:///./src/assets/Proofsheet - Gray.png","webpack:///./src/assets/Gray/removeimages-gray.svg","webpack:///./src/assets/White Icons/AdvanceWhite&Black.png","webpack:///./src/assets/Physician - Blue.png","webpack:///./src/assets/Gray/gray-squiggly-icon.png","webpack:///./src/assets/Gray/Advanced Search - Gray.png","webpack:///./src/assets/White Icons/measurements-standardCircles-icon.png","webpack:///./src/assets/Gray/Refresh - Gray.png","webpack:///./src/assets/Blue/registerreturn-icon-blue.svg","webpack:///./src/assets/Green/Minimize_Icon_April_2022_green.png","webpack:///./src/assets/Blue/Edit Patient - Blue.png","webpack:///./src/assets/Gray/returnToAdmin-icon-gray.svg","webpack:///./src/assets/Multiview - Pink.png","webpack:///./src/assets/Gray/gray-90rotate-icon-clockwise.png","webpack:///./src/assets/launch-icon.svg","webpack:///./src/assets/Gray/Proofsheet - Gray.png","webpack:///./src/assets/Add Patient - Blue - Selected.png","webpack:///./src/assets/Delete - Green - Selected.png","webpack:///./src/assets/Gray/shapeOutline_gray.png","webpack:///./src/assets/Gray/Configure-background-gray.svg","webpack:///./src/assets/Gray/Physician - Medium Gray - Selected.png","webpack:///./src/assets/Physician - Light Gray - Selected.png","webpack:///./src/assets/Multiview - Green - Selected.png","webpack:///./src/assets/Green/green-measurements-drusen2-icon.png","webpack:///./src/assets/Best Practices and Tips Bullet Point.png","webpack:///./src/assets/Teaching-Research Case - Blue.png","webpack:///./src/assets/measurements-drusen2-icon.png","webpack:///./src/assets/Blue/Proofsheet - Blue.png","webpack:///./src/assets/Blue/blue-measurements-cupdisc-icon.png","webpack:///./src/assets/Delete_Blue.png","webpack:///./src/assets/Download - Dark Gray - Selected.png","webpack:///./src/assets/Blue/Close - Blue.png","webpack:///./src/components/2fa/GoogleAuthenticator.js","webpack:///./src/assets/Delete - Medium Gray.png","webpack:///./src/assets/Blue/blue-pencil-icon.png","webpack:///./src/assets/White Icons/redact-white-icon.png","webpack:///./src/assets/Sonomed Escalon Logo for Light Backgrounds.png","webpack:///./src/assets/Blue/Close - Blue - Selected.png","webpack:///./src/assets/Gray/Devices-background-gray.svg","webpack:///./src/assets/Green/Delete - Green - Selected.png","webpack:///./src/assets/red-drop-icon.png","webpack:///./src/assets/Manual Exam Upload - Pink.png","webpack:///./src/assets/Multiview - Blue - Selected.png","webpack:///./src/assets/White Icons/freedraw-white-icon.png","webpack:///./src/assets/Green/Close - Green - Selected.png","webpack:///./src/assets/Manual Exam Upload - Pink - Selected.png","webpack:///./src/assets/Blue/blue-erase-annotations-icon.png","webpack:///./src/assets/Manual Exam Upload - Blue.png","webpack:///./src/assets/Green/Diagnosis - Green.png","webpack:///./src/assets/White Icons/white-pencil-icon.png","webpack:///./src/assets/Gray/gray-90rotate-icon-01.svg","webpack:///./src/assets/Gray/gray-measurements-line-icon.png","webpack:///./src/assets/Advanced Search - Green.png","webpack:///./src/assets/Gray/gray-redacted-icon.png","webpack:///./src/assets/Green/green-180-rotate-icon.png","webpack:///./src/assets/Gray/Drop Down Menu - Gray - Selected.png","webpack:///./src/assets/Advanced Search - Green - Selected.png","webpack:///./src/components/misc/SSOBody.vue?065f","webpack:///./src/assets/Green/Microphone-green.png","webpack:///./src/assets/Gray/gray-180-rotate-icon-clockwise.png","webpack:///./src/assets/Blue/blue-measurements-freehandArea-icon.png","webpack:///./src/assets/White Icons/delete-white-icon.png","webpack:///./src/components/dialogs/EscalonDialog.vue?e8a7","webpack:///src/components/dialogs/EscalonDialog.vue","webpack:///./src/components/dialogs/EscalonDialog.vue?c902","webpack:///./src/components/dialogs/EscalonDialog.vue","webpack:///./src/assets/Advanced Search - Gray.png","webpack:///./src/assets/Blue/blue-zoom-icon.png","webpack:///./src/assets/White Icons/frame-white-icon.png","webpack:///./src/assets/Green/green-pencil-icon.png","webpack:///./src/assets/AXIS_Favicon_green_142x142.png","webpack:///./src/assets/Gray/Edit Patient - Gray.png","webpack:///./src/assets/Green/markImages-Icon-green.svg","webpack:///./src/assets/Green/green-measurements-drusen1-icon.png","webpack:///./src/assets/Gray/calendar-gray.svg","webpack:///./src/assets/Gray/registerreturn-icon-gray.svg","webpack:///./src/assets/blue-big-icon.png"],"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","openPopupInWindow","url","open","openPopup","logDetailed","openPopupInApp","map","webpackContext","req","id","webpackContextResolve","keys","Line","position","options","headX","x","headY","y","tailX","tailY","fixedDimensions","activeTail","activeHead","activeBodyOffset","headOffset","ctx","setLineStyle","this","beginPath","moveTo","offset","angleOffset","angle","lineTo","stroke","closePath","isInBoundsBox","transform","zoom","isInBoundsLine","clearActiveState","getAndUpdateInteraction","dx","dy","updateTail","updateHead","updateLine","Math","atan2","sqrt","InteractiveAnnotation","Arrow","line","arrowOuterLength","arrowInnerLength","arrowAngle","PI","draw","drawArrow","isActive","drawBoxes","interactionPoints","outer","corner1","inner","corner2","fill","isInBounds","mousedown","signalReady","mousemove","obj","setParentTransform","width","setLineWidth","color","lineWidth","cos","sin","Text","topLeftX","topLeftY","contactPoint","distanceFromTopLeft","clickDetected","size","textSize","font","baseline","rgb","hexToRgb","backgroundColor","g","b","avg","fontColor","activeMovement","activeCorner","minWidth","min","height","lineHeight","minHeight","text","rows","textWidth","start","end","endsWithLineBreak","showBackgroundBox","syncPair","openDialog","store","commit","drawBackground","drawInteractionBoxes","drawText","fillStyle","fillRect","setFontStyle","drawRow","rowIndex","row","fillText","drawBox","bottomRightY","bottomRightX","isInBoundsResizeCorner","isInBoundsTextBox","isInBoundsCorner","topLeft","topRight","bottomRight","bottomLeft","cx","cy","clearActiveStates","updateLocation","updateSize","updateClickDetection","delta","distance","segmentLengthPoints","includes","max","doReSplit","splitLinesAndSetMinHeight","offsetY","floor","selection","index","col","currentChar","measureText","selectionStart","selectionEnd","selectionDirection","POINTER_CLASSES","nwseResize","neswResize","measureTextAndSplitLines","increaseHeightIfNeeded","currentLetter","charAt","lineBreak","isLineBreak","charWidth","maxWidth","leftover","substring","leftoverWidth","lastChar","letter","getMinHeightRequired","updateTextArea","setSyncPair","updateTextSize","Number","maxRowSize","val","Redaction","activeBody","activeSides","boxSides","top","left","right","bottom","boxes","getBoxes","box","side","hoverClass","flipCorners","nsResize","ewResize","isInBoundsBody","getHoveredBox","isBetween","bound1","bound2","updateBody","updateSides","updatingTop","updateTop","updatingLeft","updateLeft","updatingRight","updateRight","updatingBottom","updateBottom","updatingSide","pointer","OutlineBox","strokeStyle","strokeRect","SegmentChain","points","active","drawingInitialLine","minSegmentLength","drawAllPoints","point","setBoxStyle","retVal","tail","lastPoint","nextPoint","significantlyDifferent","addNextPoint","moveAllPoints","diffX","diffY","squaredSum","updateBounds","FreeHand","chain","drawBoundingBox","isOnLines","mouseup","deactivate","Angle","cornerX","cornerY","edge1X","edge1Y","edge2X","edge2Y","maxArcRadius","textX","textY","activeTip1","activeTip2","drawLines","drawArc","arc","arcRadius","edge1Angle","edge2Angle","flipArc","isInBoundsText","updateTip1","updateTip2","updateCorner","updateBodyOffset","calculateTextChanges","displayAngle","textAngle","setTextSize","edge1dy","edge1dx","edge2dy","edge2dx","normalizeAngle","abs","edgeAngleDiff","flipText","segmentLengthDisp","edge1Length","edge2Length","MeasurementText","isDetach","textContextRotation","updateTextWidthHeight","drawRotatedMeasurementText","save","translate","rotate","restore","updatePosition","drawMeasurementText","corners","getRotatedCorners","ruler","h","w","LengthLine","delimiterLength","delimiterWidth","textOffset","measurementText","textActive","drawDelimiters","drawRotatedTextInteractionBox","delimiterOffset","textPosition","updateAndDrawRotatedText","isInBoundRotation","adjustment","delimiterAngle","useTail","textOffsetAngle","scale","toFixed","Ellipse","radius","centerX","centerY","radiusX","radiusY","drawEllipse","isOnEllipse","scaledDx","rx2","scaledDy","ry2","pos","getAngularPosition","boxSize","theta","tan","tan2","denominator","adjustmentX","adjustmentY","signAdjust","sidesAndCorners","flag","getSideCornerPosition","details","sideCornerDetails","getArcPosition","sidesFlag","corner","cornerAdjust","moveY","increaseY","flipY","moveX","increaseX","flipX","Area","ellipse","getInteractionPoints","drawTextInteractionBoxe","updateAndDraw","isInBound","getHoverClass","area","CupToDisc","innerEllipse","outerEllipse","measurementTexts","horCupDisc","verCupDisc","cupArea","discArea","activeText","isTextActive","drawTextInteractionBoxes","cupDiscTextPosition","horTextWidth","horCupDiscText","verTextWidth","verCupDiscText","areaTextPosition","cupTextWidth","cupAreaText","discTextWidth","discAreaText","isInBoundsAllTexts","oldInner","getEllipseState","oldOuter","updateTextLocation","ellipseIntersection","restoreEllipseState","step","isWithinEllipse","oldState","fraction","areaTextWidth","SegmentChainArea","closed","numPoints","checkForIntersection","closeChain","findIntersectionLastSegment","intersect","truncateIntersectionIfFound","findIntersectionClosingSegment","setClosedPoint","pop","recalculateBounds","polygonArea","FreeHandArea","scaled","Circle","drawCircle","isOnCircle","CircleCollection","circleDefs","widestText","smallestRadius","maxRadius","totalWidth","def","circleSpacing","circles","xAdjustment","forEach","totalHeight","some","circle","StandardCircles1","StandardCircles2","DrusenCircles1","DrusenCircles2","DrusenCircles3","DrusenCircles4","PDT","pdtReady","spot","gld","setLineDash","areaText","gldTextWidth","gldText","spotTextWidth","spotText","generateGLD","generateSpot","maxDistance","p1","p2","pi","pj","setTail","oneMM","ETDRSGrid","lines","direction","canvasSize","circleRadius","activeBox","initialMousePos","sizeSnapshop","circleSnapshop","innerTopLeft","innerTopRight","innerBottomLeft","innerBottomRight","circleRadiusArray","lineLengthArray","totalLength","createAndDrawEllipses","createAndDrawLines","drawRect","radiusArray","locationArray","drawSector","isOnCircles","largerX","scaledMax","location","increaseSize","decreaseSize","canDecrease","difX","difY","ContinuousDraw","chains","activeChain","drawingInitialLines","isContinuous","syncMinMax","Rectangle","widthTextWidth","widthText","widthTextPosition","heightTextWidth","heightText","heightTextPosition","isOnPerimeter","defaultColorSettings","grayscaleMode","isOptos","GRAYSCALE_MODES","None","brightness","DEFAULT_BRIGHTNESS","contrast","DEFAULT_CONTRAST","gamma","DEFAULT_GAMMA","greenBrightness","greenContrast","octColorSettings","isInverted","colorPalette","grayscaleREC709","pixel","getByte","RED","GREEN","BLUE","grayscaleRed","grayscaleGreen","grayscaleBlue","GRAYSCALE_SETTINGS","REC709","pixelRule","Red","Green","Blue","ALPHA","getBrightnessTable","brightnessTable","Uint8Array","bound","getContrastTable","contrastTable","intercept","getGammaTable","gammaTable","pow","applyColorRule","colorTable","createPixel","applyGreenColorRule","a","createShiftedByte","hasCustomPixelColorSettings","settings","hasCustomOCTColorSettings","hasCustomThicknessColorSettings","linearAdjustment","applyPixelShadingRules","readBuffer","writeBuffer","colorSettings","grayscaleSetting","grayscaleRule","greenBrightnessTable","greenContrastTable","isGreen","gray","setMinimalSize","canvas","img","drawShadedImage","rule","getContext","drawImage","imgData","getImageData","writeData","createImageData","ArrayBuffer","Uint32Array","buffer","set","Uint8ClampedArray","putImageData","exportBlob","mimeType","quality","toBlob","msToBlob","blob","dataUrl","toDataUrl","generateBlobFromDataUrl","base64","split","generateBlobFromBase64","atob","arr","charCodeAt","Blob","loadImageFromBlob","URL","createObjectURL","Image","revokeObjectURL","getAnnotationType","ANNOTATION_MODES","Redact","Outline","FreeHandLine","DeepDeeInfo","DeepDeeAnalysisChart","boxLineWidth","boxColor","zoomLevel","newSize","lineColor","annotation","measuringCanvas","measuringCtx","textBaseline","hexRegex","exec","getWebglContext","isContextLost","context","octThicknessGradient","heidelbergThicknessGradient","zeissThicknessGradient","zeissDifferenceGradient","heidelbergDifferenceGradient","PALETTE_LENGTH","generatePalette","gradient","palette","c1","c2","mixColors","typed","dist","r1","g1","b1","r2","g2","b2","mixByte","applyOCTPixelShading","invertColor","paletteColor","oldR","slope","drawEllipseBezier","kappa","ox","oy","xs","ys","xe","ye","xm","ym","bezierCurveTo","calculatePixelDifference","offsetX","compareBuffer","baselineBuffer","adjust","baselineX","baselineY","compareIndex","comparePixel","baselineIndex","baselinePixel","compareRed","baselineRed","gray_adjust","generateFlatImage","clearActiveAnnotation","image","imgHtmlObject","thumbHtmlObject","imageColorSettings","saveCanvas","renderer","CanvasRenderer","imgSize","thumbSize","doScaleToPixelRatio","isFlipped","isFlipped90","drawImg","annotations","renderAnnotation","setFlattenedImageReady","render","_vm","_h","$createElement","_c","_self","attrs","on","$event","$emit","staticClass","coloredAssetUrls","close","_v","staticRenderFns","component","VAvatar","VBtn","browser","bowser","getParser","navigator","userAgent","ie","is","ios","safari","iosChrome","satisfies","chrome","iosSafari","iosFirefox","firefox","macSafari","macos","iPadBrowser","getOS","getPlatform","maxTouchPoints","modernizr","Modernizr","windowWidth","innerWidth","windowHeight","innerHeight","isFullscreen","isOpenedInApp","isIE","isIOS","isSafari","hasWebgl","webgl","webglMaxTexture","temp","gl","maxTexture","getParameter","MAX_TEXTURE_SIZE","auth","userPrefs","fullscreen","patientDateSetting","defaultColorTheme","pageSize","autoPatientExamRefresh","defaultHVF","defaultCirrusView","defaultHVFview","mfa","enabled","secret","isIdle","disableAutoLogout","backgroundTimestamp","status","level","delayedStatus","siteInfo","axisTitle","isActDirEnabled","userList","knowledgeCenterSettings","videoLibrary","knowledgeCenterVideoSrc","bestPracticesEntries","physicians","devices","deviceLogs","devTypes","devLocations","procedures","patientSearch","timespan","PATIENT_TIMESPAN","today","searchBy","SEARCH_BY","DateIntervals","dateStart","moment","startOf","format","dateEnd","endOf","keyword","advancedSearch","patientSearchOptions","page","itemsPerPage","sortBy","sortDesc","groupBy","groupDesc","ssoSearch","wasEmrPro","emrProSearchParams","advancedSearchDialog","loadingPatients","patients","totalPatients","patient","loadingExams","exams","selectedExams","exam","examToDelete","examToDownload","examsToDelete","examToEdit","imageBrowserContext","imageMap","imageQueue","imageOrder","octImageMap","octFullQueue","octSegmentationQueue","i2kImages","patientExamMultiviewContext","patientExamMultiviewSelectAll","proofsheetContext","stereoContext","sideBySideContext","printPreviewContext","overlayContext","originalOverlaySettings","loadingMessage","activeDownload","link","textAnnotationToEdit","shapeOutlineContext","shapeOutlineSyncContext","shapeFillContext","shapeFillSyncContext","placeholderContext","browserStack","openedExams","showHelpDialog","videoViewer","selectedAppPrintImages","isLoadingAppPrintImages","showDeepDeeDialog","calledFullscreenToggle","events","inactiveTimeoutID","inactiveTimeout","activeLimit","setupAutologoutEvents","addEventListener","startInactiveTimer","disableAutologoutEvents","removeEventListener","limit","getters","autoLogoutTimer","isAuthenticated","goInactive","goActive","disableRefreshPatientLoop","refreshIntervalID","refreshTimeout","setupRefreshTokenLoop","clearInterval","setInterval","refreshAccessToken","disableRefreshTokenLoop","refreshTokenExpirationTime","Date","logout","dispatch","catch","refreshAccessTokenFromBackground","getTime","userAutoPatientExamRefresh","setupRefreshPatientLoop","router","canUseMSBlob","canSaveBlobs","blobconstructor","bloburls","filereader","datauri","saveBlob","openCB","getOpenCB","loadCB","getLoadCB","load_msSaveBlob","adownload","open_anchor","open_popup","shouldUseFileReader","load_blobUrl","canUseFileReader","load_fileReader","isImage","isOctetStream","over32kb","toLowerCase","msSaveOrOpenBlob","download","cb","openUrlWithAnchor","popup","title","body","innerText","openUrlWithPopup","reader","FileReader","onloadend","replace","readAsDataURL","click","node","dispatchEvent","MouseEvent","evt","createEvent","initMouseEvent","logAppStartupInfo","checkForAuthenticationInApp","dispatchLoginInApp","dispatchSearchInApp","query","username","password","search","parseQuery","uid","upass","path","ptdob","ptfname","ptlname","ptid","modmedKeys","dict","pairs","group","token","decodeURIComponent","filter","pair","onSiteInitializedInApp","setBackgroundTimestamp","onRefreshTokenInApp","setOpenedFromApp","setPopupCB","setRequestPrintInAppCB","requestPrintInApp","msg","webkit","messageHandlers","openpopup","postMessage","requestPrint","setupRefreshTokenCB","ImageContextBase","componentName","browserName","ptSrNo","exSrNo","examMoment","playIntervalId","playRate","pause","intervalId","rate","ImageContext","images","isAnnotating","annotationMode","annotationColor","ANNOTATION_COLORS","Black","annotationLineWidth","annotationTextSize","axis5DefaultFontSize","activeAnnotation","mouseWheelZoom","sortImagesByTimespan","imageMask","deepDeeHighlight","deepDeeAnnotation","showDeepDeeAnnotation","diagnosisText","diagnosisColor","isDragLock","defaultTransform","rgbSettings","webglCanvas","flattenedImageReady","device","find","devSrNo","deviceConfigs","configs","deviceCalibration","defaultZoom","defaultZoomFactor","showMeasurementSection","showPlaybackToolbar","showImageDrawer","magnifier","Magnifier","isMagnifying","preLoadOption","shapeFillColor","toggleRGB","setDefaultZoom","refreshImages","PRELOAD_OPTIONS","preLoad2Steps","mainImages","preLoadAll","matchingConfig","v","desc","clearAnnotations","resetAnnotationSettings","resetColorSettings","mask","addMode","editMode","clearAnnotationMode","readableTextSize","ceil","ready","clearGrayscaleMode","view","getCurrentRGBIndex","expanded","sync","greenSync","views","alignTop","borderColor","icon","getRGBIndex","clearRGB","startRGB","currentRGB","OCTContextBase","imgKey","groupName","eye","seriesType","browserType","seriesMoment","seriesFileName","referenceImage","enfaceIsReference","enfaceImage","hasFoveaOffset","foveaOffset","thicknessMap","thicknessAnalysis","sliceInfo","sliceCurrent","sliceBounds","defaultCollectionBounds","compositeInfo","compositeCurrent","compositeBounds","hdVertInfo","hdVertCurrent","hdVertBounds","hdHorzInfo","hdHorzCurrent","hdHorzBounds","cscanInfo","cscanCurrent","cscanBounds","collectionKeys","composite","hdVert","hdHorz","cscan","imageType","segmentationType","newApi","octDataLoading","loadComposite","loadHD","loadCScan","dropdownItems","selectedDropdownItem","octExams","generateOCTDropdown","setOCTInfo","processImage","enfaceisReference","enfaceIsReferenceImage","processThicknessAnalysis","processFovea","processSlices","processCScan","fileName","pixelWidth","pixelHeight","imageFormat","ImageFormats","Color","dimensions","loadPreviews","currentKey","thicknessAnalysisData","centerOffset","dataKey","collection","infoKey","isZeissCross","segmentation","sliceHasSegmentation","layers","sliceDimensions","SeriesTypes","OpticDisc","od","EyeTypes","OD","os","OS","segmentationImageType","slices","Grayscale","sliceFileName","vertical","startPoint","endPoint","eyeMarker","EyeMarkers","SI","IS","NT","TN","boundsKey","calculateCollectionBounds","info","initialSlice","slabDimensions","slabs","imgIsLoading","imgNotFound","ex","octexamSrNos","exImages","imagesForExams","imgEye","imgType","sort","exMoment","diff","item","flSrNo","imgGroup","octDateButtonText","exDateDisplay","imageByKey","getMeasurementData","rem","thickness","sliceSegmentationThicknessData","layerData","sliceSegmentationLayerData","ilm","SliceLayerTypes","Ilm","rpe","Rpe","yInPerPx","verticalResolution","mmPerIn","umPerMm","convertedThickness","thicknessText","getDefaultMeasurementIndex","calculateThicknessMapAdjustment","minThicknessUm","maxThicknessUm","depthSpacingMm","minMm","maxMm","thicknessRangeMm","maxIndex","thicknessScale","spacingMm","getThicknessMapSize","minX","maxX","minY","maxY","setOCTButtonText","odGroups","setButtonTextWithEye","setButtonText","osGroups","groupItem","dateDisplay","groupSeriesType","VolumeContextBase","thicknessMapColorSettings","slicePalette","isSpectralisVolume","thicknessMapPalette","showSegmentation","thicknessMapOpacity","thicknessMapMinThicknessUm","thicknessMapMaxThicknessUm","thicknessMapThicknessStepUm","relativeMapSize","defaultSize","getSlicePalette","opacity","SpectralisContext","isMeasuring","measureData","showThicknessMap","drawAllSlices","setDefaultMeasurement","setMeasurementIndex","CirrusContext","showHD","showETDRS","userPrefCirrusView","COLOR_TYPE","toggleColorPalette","numSlices","sliceIndex","numCompositeSlices","composites","compositeCurrentIndex","collectionKey","RasterContext","SpectralisComparisonViewContext","loadImages","hasDifferenceMap","otherExSrNo","alignFoveas","differenceCanvas","differenceMapColorSettings","differenceMapMinThicknessUm","differenceMapMaxThicknessUm","differenceMapThicknessStepUm","differenceMapPalette","differenceMapOpacity","loadThicknessMap","other","baselineImg","compareImg","generateDifferenceColorSettings","baselineData","getImgData","compareData","destData","writeArrayBuffer","calculateFoveaOffset","differenceColorPalette","differenceLinearAdjustment","compareFoveaX","compareFoveaY","baselineFoveaX","baselineFoveaY","CirrusComparisonViewContext","showOverlay","overlayOpacity","differenceAnalysis","compareTA","otherTA","centerAverageThickness","centerRadius","middleCircle","eastValue","southValue","northValue","westValue","outerCircle","RasterComparisonViewContext","ComparisonContextBase","browserTypes","initialBrowserType","launchOption","compareImgKey","isComparisonContext","preferredBrowserType","compare","lockEnabled","isLocked","hasFoveaAlignControl","osExams","recognized","odExams","groups","selectCompare","clearContext","generateViewContext","reloadImages","lockIfAble","startupTask","OCTBrowserType","Spectralis","Cirrus","Raster","setOCTImage","calculateDifferenceMap","calculateDifferenceAnalysis","callChildAction","actionName","args","SpectralisComparisonBrowserContext","scanTypeFilter","selectedScan","thicknessDifference","bothMeasuring","isSpectralisComparison","scanType","groupKey","newExam","results","compareScanType","currentOCTBrowserType","baselineScanType","updateThicknessMapOpacity","differencePercentage","difference","checkThicknessCompare","selectBaseline","compareSeriesType","baselineSeriesType","isSameSeriesType","groupSplitExams","groupkey","test","generateExamsFromGroup","examTypes","f","toUpperCase","CirrusComparisonBrowserContext","HvfView","osImages","odImages","imagePairs","osImage","odImage","createImagePairs","selectInitialImagePair","osPair","osIndex","findIndex","odPair","odIndex","selectedPair","pairIndex","indexOf","selectImagesByIndex","HvfContext","allHvFExams","visualFieldExams","eyeFilter","OU","sameDateExams","getSameDateExams","exSrNos","getExamsWithUniqueDate","setupView","clear","prev","next","HvfMultiviewContext","reduce","concat","self","generateContextForImage","isSideBySide","examBySrNo","description","generateOCTContext","defaultHVFVIEW","DEFAULT_VIEW_TYPE","multiView","getsortedImages","imagesByExSrNo","imagesOrderByExSrNo","generateContextFromExam","generateContextFromGroupName","currentEye","generateContextFromGroupAndExSrNo","generateContextFromEye","patientExams","isOCT","isScans","getOCTGroup","generateOCTContextFromGroup","generateMultiviewFromContext","generateMultiviewContext","generateMultiviewFromEye","scanTypeText","getManufacturer","Manufacturers","Heidelberg","Zeiss","Optovue","Unknown","processScanAndSeriesTypes","manufacturer","recognizedGroupSeriesType","getScanAndSeriesTypes","getOCTBrowserType","seriesTime","seriesTimeFormat","ScanTypes","Volume","Macula","AnteriorSegment","RadialCircle","Star","Section","recognizedTerms","StereoContext","selectedImages","exIndex","nextIndex","nextImage","image1","image2","SideBySideContext","displayAnnotation","leftContext","rightContext","print","content","doPrint","newWindow","write","onfocus","focus","formatPrintContent","html","displayHeader","pageLayout","imagesPerSheet","alertAboutPrintInApp","alert","PrintPreviewContext","currentPage","sheetNum","imageNum","isPrinting","getElementById","innerHTML","imageAlreadyLoaded","prefix","login","payload","processLogin","sso","allowUISSO","fullURL","mergePidKey","pattern","objKey","ptID","axios","post","response","loginData","logoutAndReject","emrStatLogin","processEMRstatLogin","validateJWT","JSON","parse","access_token","refresh_token","user","renewToken","sessionStorage","getItem","json","refreshToken","RefreshToken","isTokenExpired","finally","clearAllDialogs","getMFAEnabled","setMFAEnabled","_","setMFASecret","getMFASecret","initialize","state","initial","storeAuth","jsonAuth","getSiteInfo","defaultPatientListing","autoRefreshPatientList","getActDirEnabled","isEnabled","getPhysicians","forceLoad","doLoad","phyStatus","phyLevel","phyUsrSrNo","phySrNo","lastName","phyLName","firstName","phyFName","phyName","isSelected","modalityList","phyModalityList","getDevices","configuration","DOMParser","doc","parseFromString","children","nodes","attributes","TYPE","VALUE","DESC","srNo","getdevLocations","devLocationsList","getProcedures","dpSrNo","dpName","getPracticeGroupsList","ensureStaticListsLoaded","setAxisSettings","DefaultPatientListing","patientDefaultListing","UseDefaultHvf","useDefaultHVF","OverrideMultiviewHVFCheck","overrideMultiviewHVFCheck","UserInactivityTimeLimit","userInactivityTimeLimit","IsActDirEnabled","actDirEnabled","LDAPPathList","actDirPath","GroupAdmin","actDirGroupAxisAdmin","GroupAttdMD","actDirGroupAxisAttndMD","GroupRefMD","actDirGroupAxisRefMD","GroupUser","actDirGroupAxisUser","GroupReadOnly","actDirGroupAxisReadOnly","GroupViewOnly","actDirGroupAxisViewOnly","GroupPhotographer","actDirGroupAxisPhotographer","SiteDefaultHVFview","siteDefaultHVFview","CirrusScanDisplayRatio","cirrusScanDisplayRatio","UserLockoutEnabled","userLockoutEnabled","UserFailedLoginAttempts","userFailedLoginAttempts","UserLockoutDuration","userLockoutDuration","UserFailedLoginAttemptsReset","userFailedLoginAttemptsReset","getActDir","getUserList","usrStat","desig","statsList","month","mapMonth","statsFilesList","number","processUser","ID","Pass","FName","fName","LName","lName","Desig","IsValid","IsActive","Stat","ChangePWD","changePWD","ChangePWDMust","changePWDMust","UserPrefMenu","userPrefMenu","ContactNumber","contactNumber","Email","email","SrNo","act","Dept","dept","PracticeGroupIds","practiceGroupId","processPhysician","associatedUser","UsrSrNo","Name","PhyLevel","PhyStatus","IsSelected","usrSrNo","stat","isValid","DOB","dob","RCAssociatedSiteSrNo","rcAssociatedSiteSrNo","RCVFSPermit","rcvfsPermit","RCOCTPermit","rcoctPermit","RCDesig","rcDesig","usrMFA","processDevice","devType","devName","devProc","devDescrition","ignoreRotation","orderByLaterality","devConfig","getDeviceLogs","getUserPrefs","patientTimespan","currentRoute","setUserPrefs","multiviewCollapse","loginChangePass","removePatientExam","delete","submitEditExam","editToExam","generateExamZip","exDate","exDevice","generateExamZipForChecked","exSrNoList","exDateList","exDeviceList","downloadExamZip","retObject","escaped","encodeURIComponent","responseType","downloadBlob","addPatient","PtId","ptId","LastName","FirstName","DateOfBirth","Gender","gender","editPatient","put","PtSrNo","ValidityStatus","saveExam","eyes","eyeString","files","ExSrNo","DeviceSrNo","date","PhysicianSrNo","physician","Eye","editExam","editExamPhysician","dateIso","ExAttdMDList","exAttdMD","ExRefMDList","exRefMD","ExDevice","editExamDiagnosis","PrimaryDX","exDxPrimary","SecondaryDX","exDXSecondary","Pathology","exPathology","editExamDate","editExamDictation","ExDict","exDict","editExamTeachingCase","ExIsStudy","exIsStudy","editExamImagesInfo","mergePatients","ptSrNos","openBrowserForImage","endsWith","openImageBrowser","setBrowserContext","reloadChildrenContext","closeImageBrowser","selectNextImage","imageIndex","browserImages","VALID_IMG_TYPES","selectPreviousImage","playImages","playNextImage","selectImageByIndex","selectImageFromImageDrawer","videoExSrNo","toggleGrayscaleMode","rgbView","updateBrightness","updateContrast","updateGamma","updateGreenBrightness","updateGreenContrast","toggleFlipped","rgbSync","toggleFlipped90","mousedownAnnotation","eventWrapper","activeIsContinuous","previousActive","inAddMode","createAnnotation","inEditMode","inShapeFillMode","annotationByPosition","inDeleteMode","onCreate","annotationOptions","imageTransform","deleteActiveAnnotation","annotationIndex","imgObject","toggleRGBSync","toggleGreenSync","selectRGBView","currentRGBView","currentRGBIndex","selectRGBViewByMode","rgbIndexByMode","updateRGBSync","getOCTInfo","loadOCTImages","octImagesForCurrentBrowser","loadOCTImagesForMultiview","getOCTImagesForMultiview","loadOCTQueues","queues","constructOCTQueues","queue","queueKey","fullLine","concurrent","cancelled","action","segmentationLine","loadSegmentation","loadOCTImage","generateOCTLoadRequest","mutation","loadOCTSegmentation","imageState","segmentationIsLoading","segmentationIsQueued","loadRequest","processZipFile","processSegmentationData","segmentationNotFound","originalIndex","isPreview","JSZip","loadAsync","generateLayerPromises","zip","loadZipFile","Float64Array","async","buf","thicknessData","getOCTImage","params","loadOCTImageImmediately","uniqueKey","join","debouncedLoadOCTImageCall","debouncePerKey","loadPreview","selectNextComposite","selectPreviouscomposite","selectNextSlice","sliceCurrentIndex","selectPreviousSlice","playSlices","playNextSlice","selectSliceByIndex","measureIndex","selectOCTImageByIndex","selectOCTImage","selectOCTExam","selectOCTExamByExamText","examText","octExamsWithScanTypes","selectOCTGroup","currentGroup","selectOCTEye","toggleInverted","openOCTMultiviewFromThumbnail","toggleOCTMultiview","selectOCTExamCompare","octExamsSameType","getFirstRelevantGroup","selectOCTCompareView","selectOCTGroupCompare","selectOCTExamCompareWithDropdown","imageByFlSrNo","selectOCTExamCompareWithExamText","selectSpectralisGroupCompare","baselineExams","selectOCTEyeCompare","scanFilter","spectralisScanTypeFilter","updateScanTypeFilter","tryGetBaselineContext","baseline_exam","baselineExam","THUMBNAIL_DROPDOWN","currentBaseline","sameTypeExams","oldestExamIndex","compareExams","toggleLocked","synchronizeOCTCompare","setPlayRate","toggleMeasuring","toggleSegmentation","toggleETDRS","toggleOverlay","updateOverlayOpacity","compareSliceCount","compare_slices","baselineSliceCount","baseline_slices","synchronizing","selectNextSliceCompare","getSlices","selectPreviousSliceCompare","playSlicesCompare","playNextSliceCompare","selectSliceByIndexCompare","selectSliceByIndexProportionCompare","selected","toChange","toChangeView","selectedProportion","toChangeProportion","selectSliceByIndexForView","hasMeasureData","selectOCTImageByIndexCompare","selectOCTImageByIndexForView","selectOCTImageByIndexProportionCompare","toggleColorCompare","toggleInvertedCompare","selectHVFExam","openHVFMultiview","closeHVFMultiview","openStereo","closeStereo","setInitialStereoPair","changeSelectedStereoPair","button","stereoSelectedPair","stereoImagePairs","swapSelectedStereoPair","openSideBySide","isLeft","closeSideBySide","setSideBySideImageBrowserContext","sideBySideSelectExam","sideBySideSelectImage","openOverlay","sourceImages","differentEyes","registeredImages","flSrNos","i2kImagesByFlSrNos","requestData","mapI2kRequests","flName","storeSrNo","displayErrorAndReject","cancelAddImagesToOverlay","previousOverlayImages","loadRegisteredImages","flSrNoList","loadOverlayImages","thumb","proof","closeOverlay","closeOverlayToAddImages","openMontage","latestImage","current","isAfter","i2kImageByKey","imgIndex","rcssrNo","rcimgIntrimPath","loadMontageImage","loadI2kImage","getI2kImage","openPrintPreview","access","ptSex","closePrintPreview","appPrintSetup","imagesID","EMRLink","Page","ItemsPerPage","AdvancedSearch","ExamTypes","PatientName","PatientId","PtSex","formatDateDisplay","exDateIso","formatDateISO","nameLast","nameFirst","isoDOB","ptValidityStatus","tableKey","popBrowserStack","refreshTopBrowser","topBrowser","setOpenedExams","openVideoViewer","video","getChartResult","chartCriteria","submitExamSummaryReport","examSummaryCriteria","Advanced","dateFrom","dateTo","ReportTechingCase","teaching","ReportDictatedCase","dictated","ExamPhysicians","ExamPathology","examPathology","ReportGroupBy","reportGroupBy","DevLocation","DevType","pageNumber","rowPerPage","submitUserActivityReport","userActivityCriteria","UserSrNo","DateFrom","DateTo","Activity","userActivities","PageNumber","RowsOfPage","list","hplTmStamp","utc","patientID","examID","submitDeviceHistory","deviceHistoryCriteria","Users","users","Devices","tmStamp","changes","oldValues","firstObject","userSrNo","field","newValues","oldJson","newJson","DEVICE_HISTORY_EDITABLE_FIELDS","diffObject","submitQuickSearch","submitAdvancedSearch","submitTimespanSearch","getPatients","autoRefresh","ssoEmrPro","oldPatient","ssoExSrNo","allSamePatient","selectedSSOExam","every","selectPatient","emrProExSrNo","getPatientExams","getPatientExamSSO","loadExams","beforeLoad","apiCall","elapsed","apiThenProcessExams","getPhysicianName","generatePhysicianNameArray","array","container","localeCompare","setFirstMD","firstMD","processExams","success","ssoDevice","ssoExType","ssoDate","ssoExDate","listText","selectAllImages","loadedImageMetadata","exDevType","exAttdMDHtml","exRefMDHtml","getOCTExamInfo","loadExamImageMetadata","items","match","processExamImages","exImgDataRes","exImgData","loadImageMetadataForAllExams","getEMRStat","emrpro","launchPDF","file","fileURL","openHelpDialog","getKnowledgeCenterSettings","getVideoLibrary","parsedJson","launchVideo","isKnowledgeCenterVideo","getBestPracticesEntries","getThumbnailsForOpenExams","imagesForOpenExams","loadImagesForSideBySide","leftImages","sideBySideLeftExSrNo","rightImages","sideBySideRightExSrNo","preload_all","preLoad_2Steps","loadImages_full_thumb","full","loadImages_full","loadImages_thumb","loadImages_proof","loadImageSet","constructImageQueue","addQueueRecord","doAdd","loadQueue","loadQueueInstance","loadImage","doLoadImage","isLoadingKey","notFoundKey","loadImageFromString","setSize","getAxisImage","imgSubType","PatientExamMultiviewContext","filteredExams","currentExams","filteredImages","currentImages","deviceList","deviceFilter","dateList","dateFilter","isCollapsed","multiviewCollapseUserPref","multiviewCollapseByDefault","reverse","newDeviceList","newDateList","updateFilteredImages","dates","dropped","added","si","addExams","removeExams","shouldBeSelected","se","imagesInExam","selectedInExam","reconstructFilters","imgSrNos","updateCurrentImages","updateSelectedImages","updateFilteredExams","fixSelectedExams","bounds","openMultiview","beforeLoadMultiview","constructFilters","selectEyeMultiview","selectDevicesMultiview","selectAllDevicesMultiview","selectDatesMultiview","selectAllDatesMultiview","selectAllExamsMultiview","selectExamsMultiview","closeMultiview","refreshMultiview","updateCurrentExamsMultiview","resetMultiviewImages","loadImagesForMultiview","currentMultiviewImages","allImages","ProofsheetContext","sortImagesByExamDate","filterOption","isDeletingImages","isMarkingImages","option","visibleImages","showAll","openProofsheetFromExamList","beforeLoadProofsheet","openProofsheet","closeProofsheet","selectEyeProofsheet","selectFilterProofsheet","selectImageProofsheet","proofsheetShowAll","selectAllProofsheet","startDeleteImages","selectedProofsheetImages","deleteImages","proofsheetImagesToDelete","startDownloadImages","generateImageDownloadZip","downloadActiveFile","activeDownloadLink","startMarkImages","markImages","ar","updateCurrentImagesProofsheet","loadProofsheetImages","currentProofsheetImages","createDeepDeeExam","FlName","FileSrNo","errorMessage","getDeepDeeExam","PlaceholderContext","OverlayBrowserContext","foreground","background","redColor","greenColor","blueColor","colorSettingOptions","setWindowSize","setCalledFullscreenToggle","resetCalledFullscreenToggle","resetFullscreen","toggleFullscreenState","toggleFullscreen","elem","documentElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","setAxiosHeader","defaults","headers","common","Authorization","updateAuth","localState","setItem","setAuthHeader","setRefreshTokenExpiration","accessToken","expires_in","expires_time","enableAutoLogout","time","setPatients","setExams","clearSelectedPatient","resetSearch","removeItem","set2faEnabled","set2faSecret","setPatientDateSetting","dateSetting","setAutoPatientRefresh","setDelayedStatus","tryDisplayDelayedStatus","displayStatus","indefinite","destroyStatus","setPhysicians","setDevices","setDeviceLogs","logs","setdevLocations","setProcedures","setActDirEnabled","setPracticeGroupsList","practiceGroupsList","quickSearch","clearSearch","Keyword","All","openAdvancedSearch","closeAdvancedSearch","startDate","from","endDate","to","patientName","isTeachingCase","isDictated","examPhysicians","searchAppend","searchOP","patientDOB","examDate","fileSrNo","examProcedure","exdate","isoDateTimeFormat","names","RegExp","extype","exsrno","ptsex","clearSSOSearch","setSearchTimespan","doSetSearchTimespan","getDateInterval","interval","updatePatientSearchOptions","startLoadingPatients","stopLoadingPatients","setTotalPatients","total","clearBrowserContext","startLoadingExams","stopLoadingExams","selectExams","setExamToDelete","addExamToDeleteList","clearExamDeleteList","setExamToDownload","setExamToEdit","clearEditExam","clearImageOrder","setExamImageMetadataLoaded","storeImages","order","addImgWrapper","setImageState","removeImagesImageMap","updateOCTExamInfo","odGroupList","osGroupList","setBrowserType","updateExamImageDate","updateMultiviewEye","switchEye","selectImage","resetImage","setCurrentImageLoading","isLoading","setPlayInterval","setDiagnosisText","setDiagnosisColor","setImageMask","toggleDeepDeeHighlight","setDeepDeeAnnotation","toggleDeepDeeAnnotation","setTransform","selectCalibration","toggleIsAnnotating","updateAnnotationColor","updateAnnotationTextSize","toggleAnnotationMode","setActiveAnnotation","addAnnotation","deleteAnnotation","setTextAnnotationToEdit","setAnnotationText","updateMagnifier","mousedownMagnifier","mouseupMagnifier","setShapeOutlineContext","setShapeOutlineSyncContext","setShapeFillContext","setShapeFillSyncContext","setRGBExpanded","replicateCurrentRGBToMain","replicateMainToCurrentRGB","replicateMainToAllRGB","replicateGreenMainToAllRGB","storeOCTImages","sliceSegmentationIsLoading","setOCTImageState","calculateThicknessDifference","isBothMeasuring","toggleShowThicknessMap","toggleHD","centerFovea","toggleSegmentationCompare","toggleMeasuringCompare","setMeasurementIndexCompare","pauseCompare","setPlayRateCompare","setPlayIntervalCompare","toggleOverlayCompare","updateOverlayOpacityCompare","toggleETDRSCompare","updateFoveaAlignment","selectHVFEye","previousHVFImage","nextHVFImage","clearImageQueue","setImageQueue","purgeOldImages","exceptImages","ieMax","threshold","imgObjectUrl","imagesToPurge","clearImage","purgeOldOCTImages","previews","previewObjectUrl","ieMaxOCT","maxOCT","objUrlKey","setPatientExamMultiviewContext","clearPatientExamMultiviewContext","selectEye","selectDevices","selectAllDevices","selectDates","selectAllDates","selectAllExams","selectImageMultiview","refreshExams","removeImagesMultiview","removeImages","setCurrentExamsMultiview","setCurrentExams","resetImages","toggleMultiviewCollapse","toggleCollapse","setProofsheetContext","clearProofsheetContext","setFilterOption","setEyeFilter","cancelDeleteImages","removeImagesProofsheet","setActiveDownload","cancelActiveDownload","cancelMarkImages","updateImageLaterality","setCurrentImagesProofsheet","setCurrentImages","clearSelectedImages","setPlaceholderContext","clearPlaceholderContext","clearOverlay","setLoadingMessage","storeI2kImages","imgIsQueued","setI2kImageState","setOriginalOverlaySettings","setStereoContext","clearStereoContext","setStereoPair","imagePair","setStereoImagePairList","setPrintPreviewContext","clearPrintPreviewContext","togglePrintPreviewHeaders","setPrintPreviewImagesPerPage","num","setPrintPreviewPageLayout","layout","incrementPrintPreviewCurrentPage","decrementPrintPreviewCurrentPage","startPrinting","stopPrinting","togglePrintPreviewIsPrinting","startLoadingAppPrintImages","finishedLoadingAppPrintImages","setPrintPreviewSheetNum","setPrintPreviewImageNum","setSideBySideContext","clearSideBySideContext","toggleSideBySideAnnotation","setSideBySideImageBrowser","setSideBySideImageBrowserContextImage","toggleSideBySideSync","syncAnnotations","deepCopyAnnotation","duplicateAndSyncAnnotation","recreateBaseAnnotation","original","constructor","originalPosition","deepCopyObject","deepCopyPlainObject","deepCopyArray","copy","Array","deepCopyProperty","isFunction","copiedValue","Annotation","desyncAnnotations","rightAnnotations","leftAnnotations","clearSyncState","syncAnnotationText","syncText","addToBrowserStack","closeHelpDialog","viewer","clearVideoViewer","openDeepDeeDialog","closeDeepDeeDialog","setKnowledgeCenterSettings","clearKnowledgeCenterSettings","setVideoLibrary","library","clearVideoLibrary","setKnowledgeCenterVideoSrc","clearKnowledgeCenterVideoSrc","setBestPracticesEntries","clearBestPracticesEntries","widthXs","widthSm","widthMd","widthLg","widthXl","widthLandscape","widthTablet","heightXs","heightSm","heightMd","heightLg","belowMobileCutoff","allowUnsecuredSSO","userFullName","deptName","userDesig","userIsAdmin","USER_DESIG","Admin","userIsAttdMD","AttdMD","userIsRefMD","RefMD","userIsPhotographer","Photographer","userIsUser","User","userIsViewOnly","ViewOnly","userIsReadOnly","ReadOnly","canAnnotate","canDownload","canDownloadExam","canDelete","canEditPathology","usrMustChangePwd","hideUserPref","MfaEnabled","MfaSecret","userPrefsFullscreen","userPrefHVF","userPrefBlackAndWhiteCirrusView","blackWhite","userPracticeGroupIds","PracticeGroupId","hvfOrder","EYES_ORDER_TYPE","OS_OD","useDefaultHvf","singleView","statusMessage","statusLevel","statusTimeout","el","deviceBySrNo","preLoadFullImage","preloadLargeViewImages","axis5Version","onlineHelp","exLnchEnabled","exLnchTitle","exLnchURL","enableSavingWithEmrPro","restrictInIE","downloadPNGImage","siteCirrusScanDisplayRatio","searchTimespan","searchKeyword","currentOCTExam","examToEditPhysician","examToEditDiagnosis","imagesByPtSrNo","maxZoom","currentBrowserImage","imgAvailable","hasFullImage","thumbObject","displayImgObject","displayImgSize","flippedImgSize","displayIsFullImage","thumbIsLoading","imgTimestamp","imgTimeStamp","imgMask","isPlaying","deleteMode","inMagnifyMode","magnifyMode","shapeFillMode","White","selectedTextSize","isShapeOutlineOpen","isShapeFillOpen","hasDeviceConfigs","deviceCalibrations","hasDeviceCalibrations","rgbExpanded","rgbViews","rgbViewByIndex","rgbViewsNotMatchingMain","main","eyeGroups","overallVolume","overallAverageThickness","showSpectralisThicknessMapButton","spectralisScanTypes","octDropdownItems","refImg","refImgNotFound","refImgLoading","refImgLocation","thicknessMapImg","enfaceImg","enfaceImgSize","enfaceImgNotFound","enfaceImgLoading","sliceCurrentEyeMarker","sliceImgObject","slicePreviewObject","previewHtmlObject","sliceImg","sliceImgNotFound","sliceImgLoading","compositeCurrentEyeMarker","compositeImgObject","compositePreviewObject","compositeImg","compositeImgNotFound","compositeImgLoading","compositeHasSegmentation","compsiteSliceInfo","compositeSegmentationIsLoading","compositeSegmentationLayerData","hdVerts","hdVertCurrentIndex","hdVertImg","hdVertImgNotFound","hdVertImgLoading","hdVertHasSegmentation","hdVertSegmentationIsLoading","hdVertSegmentationLayerData","hdHorzs","hdHorzCurrentIndex","hdHorzImg","hdHorzImgNotFound","hdHorzImgLoading","hdHorzHasSegmentation","hdHorzSegmentationIsLoading","hdHorzSegmentationLayerData","hasHD","cscans","cscanCurrentIndex","cscanImg","cscanImgNotFound","cscanImgLoading","hasColorPalette","baseline_exSrNo","baseline_groupName","compare_exSrNo","compare_groupName","showFoveaAlignControl","allowedTypes","preferredType","aPreferred","bPreferred","comparisonSameType","baseline_browserType","compare_browserType","baseline_loading","baseline_reference","baseline_refImg","baselineTime","baselineGroups","getGroups","baseline_sliceInfo","baseline_sliceCurrent","baseline_sliceImg","baseline_thicknessMap","baseline_thicknessMapImg","baseline_showOverlay","baseline_dropdownItems","baseline_selectedDropdownItem","compare_loading","compare_reference","compare_refImg","compareGroups","compare_sliceInfo","compare_sliceCurrent","compare_sliceImg","compare_thicknessMap","compare_thicknessMapImg","compare_showOverlay","compare_dropdownItems","compare_selectedDropdownItem","hvfExams","hvfEye","hvfView","hvfIndex","hvfImageCount","hvfOSImages","hvfOSImage","hvfODImages","hvfODImage","hvfViews","octPreviewQueue","multiviewEye","patientExamMultiviewImageObjects","multiviewExams","filteredMultiviewExams","currentMultiviewExams","selectedMultiviewExams","multiviewAllExamsSelected","multiviewImages","filteredmultiviewImages","selectedMultiviewImages","multiviewImagesByExSrNo","imageIsSelectedInMultiview","filteredMultiviewImagesByExSrNo","multiviewIsCollapsed","proofsheetFilterOption","proofsheetEyeFilter","proofsheetImages","filteredProofsheetImages","imageIsSelectedInProofsheet","proofsheetAllSelected","allSelected","activeDownloadText","proofsheetImagesToMark","addingImagesForOverlay","printPreviewPageLayout","printPreviewDisplayHeader","printPreviewImagesPerSheet","printPreviewCurrentPage","printPreviewIsPrinting","printPreviewSheetNum","printPreviewImageNum","printPreviewImages","sideBySideDisplayAnnotation","sideBySideIsSynced","sideBySideCanSync","leftSize","rightSize","sideBySideLeftContext","sideBySideLeftImage","sideBySideLeftImages","sideBySideLeftIndex","sideBySideLeftEye","sideBySideLeftTimestamp","sideBySideRightContext","sideBySideRightImage","sideBySideRightImages","sideBySideRightIndex","sideBySideRightEye","sideBySideRightTimestamp","videoPtSrNo","videoFileName","videoEye","logApiRequest","method","logSuccessfulApiResponse","res","config","statusText","logFailedApiResponse","baseURL","apiBaseURL","withCredentials","interceptors","use","Vue","Vuex","Store","actions","otherActions","authActions","getPatientExamActions","getHelpCenterActions","getImageActions","multiviewActions","proofsheetActions","deepDeeActions","mutations","subscribe","showZoomedImage","imgX","imgY","defaultMagSize","magnification","viewSize","fit","drawMagnifierBorder","drawZoomedBorder","drawZoomedImage","magnifierSize","zoomX","zoomY","zoomSize","minOffset","maxOffsetX","maxOffsetY","minImg","maxImgX","maxImgY","imgOffsetW","imgOffsetH","maxZoomX","maxZoomY","directives","rawName","expression","style","_e","model","callback","$$v","snackbar","_s","stopPropagation","preventDefault","closeSnackbar","computed","methods","watch","$store","VSnackbar","showModal","confirm","slot","timeUntilLogout","components","escalonDialog","remaining","remainingIntervalId","log","toISOString","$nextTick","startAutoLogout","VFlex","VOverlay","VProgressCircular","maintainClass","className","classList","add","overflowStyle","mounted","$vuetify","theme","dark","light","handler","VApp","VContent","Resize","Vuetify","icons","iconfont","values","checkboxOn","checkboxOff","checkboxIndeterminate","themes","primary","secondary","tertiary","green","blue","validate","isoDateFormat","getMessage","paramNames","displayDateFormat","colorClass","colorHex","borderStyle","isLightTheme","coloredLogo","tabClass","dropdown","manualUpload","multiview","proofsheet","refresh","stereo","sideBySide","montage","overlay","annotate","reset","erase","magnify","nintyDegree","oneEightyDegree","fitToWindow","drag","arrow","redacted","outlined","freehand","continuous","cupToDisc","freehandArea","pdt","etdrs","smallStandardCircles","standardCircles","smallDrusenCircles","drusenCircles","drusenHalf","drusenCircle","rectangle","cursor","microphone","teachingResearch","diagnosis","editPathology","reports","usersBackground","physicianBackground","devicesBackground","configure","returnToAdmin","returnToSingleView","calendar","printButton","markImage","downloadCircle","submit","returnToOverlay","patientDownload","patientMic","patientPencil","patientTeaching","patientDiagnosis","patientTrash","patientPhysician","highlighter","expand","minimize","lightbulb","advance","mousezoom","shapeOutline","shapeFill","activeAnnotationIcons","exitHandler","webkitIsFullScreen","mozFullScreen","msFullscreenElement","__webpack_public_path__","clientBaseURL","process","Validator","extend","inPast","VeeValidate","inject","fieldsBagName","VueMoment","VueHammer","mixin","colorThemeMixin","productionTip","preLoadTask","vuetify","App","$mount","p1x","p1y","p2x","p2y","range","numerator","angleRad","boxX","boxY","findIntersection","fromEnd","fromStart","p3","p4","segmentIntersection","dx1","dy1","dx2","dy2","determinant","cdx","cdy","intersection","intersectionFound","sizesEqual","local","external","fitZoom","minZoom","flippedSize","getZoom","parentSize","childSize","setZoom","useFitZoom","setCenter","setZoomBounds","setFitZoom","getBoundedCenter","center","setOffsets","zoomW","zoomH","centerLocX","centerLocY","setTransformSizes","getFittedSize","margin","marginLeft","marginTop","marginRight","marginBottom","parentWithMargins","setFittedSize","fitSize","hasBounds","setCirrusRefereceFit","aspectFit","getSquareFit","setSpectralisReferenceFit","setRGBSizes","mainViewSize","largeViewSize","largeViewFit","rgbSize","lvFactor","rgbFactor","lvs","rgbs","withinViewBounds","outOfBoundsDirection","Directions","Horizontal","Vertical","viewOffset","calculateRealLocation","useFlipped","oldCalculateRealLocation","viewCenterOffsetX","viewCenterOffsetY","mouseX","mouseY","realX","realY","getCollectionBounds","getViewSize","elementSize","getViewSizeByClassName","getElementsByClassName","clientWidth","clientHeight","minCenterY","scrollCenterYConversion","scrollFromCenterY","minCenter","conversion","centerYFromScroll","scroll","readyCallback","Function","interactionX","interactionY","isFlipped270","flippedX","isDeepDeeAnnotation","forceTranslate","toSave","prepareCanvas","renderImg","renderImgBounded","cleanupCanvas","scaleToDevicePixelRatio","transformCanvas","flipCanvas","rotateCanvas","flipCanvasX","devicePixelRatio","clearRect","ADUser","RCSiteUser","Invalid","Device","Reviewer","thisWeek","thisMonth","thisYear","PATIENT_TIMESPANS","CHNG_PSWD","USER_STATUS","USER_DESIGN_ADD","PHYSICIAN_LEVEL","ISSELECTED","GENDERS","PAGE_SIZE","PATIENT_DATE_SETTING","PATIENT_DATE_SETTING_USERPREF","AUTO_REFRESH","FULL_SCREEN","DEFAULT_HVF_ORDER","DEFAULT_CIRRUS_VIEW","EYES","U","PATIENT_STATUS","tooltip","PLAY_RATES","LightGray","DarkGray","Brown","LightBrown","LightRed","Orange","LightOrange","Yellow","LightYellow","LightGreen","LightBlue","Purple","LightPurple","Select","Delete","Magnify","CountingGrid","ShapeFill","Grayscale16","Rnfl","Ipl","Opl","RpeFit","Bm","AdminPanelTabs","DashBoard","Reports","ReportTypes","Exam","GROUP_BY","none","exDateTime","exDevProc","exDictated","pathNote","devLocation","UserActivities","BoolAndEither","DEFAULT_PATIENT_LISTING","DEFAULT_HVF","DEFAULT_MACULAR_CUBE_SCAN_RATIO","DEFAULT_MACULAR_CUBE_SCAN_RATIO_USER_PREF","TRUE_OR_FALSE","ENABLE_OR_DISABLE","TEXT_SIZES","currentPrevious","preLoadNone","SINGLE_OR_MULTI","SINGLE_OR_MULTI_USERPREF","MULTIVIEW_COLLAPSE_BY_DEFAULT","OD_OS","darkblue","white","THUMBNAIL_ANNOTATION_TYPE","spectralisCircle","spectralisVolume","spectralisRadial","spectralisRadialSCN","cirrusReferenceMacular","cirrusReferenceRaster","spectralisSection","spectralisRadialCircle","cirrusReferenceOpticDisc","DEEP_DEE_COLORS","SHOW_BACKGROUND_BOX","DEV_CONFIG_TYPES","DEV_CONFIG_XML_VALUES","DEVICE_HISTORY_SORTBY","Username","TmStamp","OldValues","NewValues","class","responsivePageStyle","staticStyle","additionalLoginImage","valid","errors","first","showPassword","submitDisabled","loginErrorMsg","openItunesStore","is2faOpen","submit2faModal","close2faModal","isOpen","GACode","props","Boolean","VCard","VCardActions","VCardText","VContainer","VDialog","VSpacer","VTextField","VToolbar","tokenModal","mixins","GoogleAuthenticator","loading","any","hasAdditionalLoginImage","imgStyle","additionalImgStyle","$validator","checkCode","completeLogin","$route","redirect","VCol","VForm","VRow","searchParams","modMedKeys","mmKey","newKey","mapMutations","doSSOSearch","complainOnFailure","continue","$router","mapModmedKeys","cleanupModmedDates","dobMoment","created","_m","SSO","beforeEnter","meta","guest","LoginPage","ValidateJWT","requiresAuth","Router","base","routes","beforeEach","NProgress","matched","route","afterEach","done","history","getCurrentLocation","pathname","hash","debounce","func","wait","immediate","later","callNow","indexArg","timeOuts","storedArgs","limits","bytes","formatBytes","toPrecision","mapWatchers","watchers","deep","normalizeMap","prop","unsortedImages","imagesOrder","sortedImages","element","compareTimespans","compareExamDate","unique","moduleName","functionName","serializeArgs","serializeArg","arg","String","chartImg","toDataURL","disclaimerText","disclaimerLines","titleText","drawChart","drawTopText","textAlign","patientRefreshIntervalID","patientRefreshTimeout","refreshPatientList","getMFA","setMFA","mfaValue","mfaResponse","generateSecret","speakeasy","getSecretFromAPI","getSecret","base32","getQRCode","qrurl","QRCode","otpauth_url","data_url","getHex","hex","userToken","totp","verify","encoding","_t"],"mappings":"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AOD,QAAU,IAA0B,0B,mBCA3CC,EAAOD,QAAU,ktC,qBCAjBC,EAAOD,QAAU,IAA0B,iD,qBCA3CC,EAAOD,QAAU,sb,qBCAjBC,EAAOD,QAAU,s5E,qBCAjBC,EAAOD,QAAU,IAA0B,sC,qBCA3CC,EAAOD,QAAU,0mJ,uBCAjBC,EAAOD,QAAU,IAA0B,kD,uBCA3CC,EAAOD,QAAU,IAA0B,mD,mBCA3CC,EAAOD,QAAU,swD,qBCAjBC,EAAOD,QAAU,0xC,uBCAjBC,EAAOD,QAAU,IAA0B,6D,uBCA3CC,EAAOD,QAAU,IAA0B,iD,uBCA3CC,EAAOD,QAAU,IAA0B,6C,qBCA3CC,EAAOD,QAAU,0rB,uBCAjBC,EAAOD,QAAU,IAA0B,mC,uBCA3CC,EAAOD,QAAU,IAA0B,mC,qBCA3CC,EAAOD,QAAU,8gB,qBCAjBC,EAAOD,QAAU,83D,qBCAjBC,EAAOD,QAAU,kmF,uBCAjBC,EAAOD,QAAU,IAA0B,6C,uBCA3CC,EAAOD,QAAU,IAA0B,kD,uBCA3CC,EAAOD,QAAU,IAA0B,sD,uBCA3CC,EAAOD,QAAU,IAA0B,sC,qBCA3CC,EAAOD,QAAU,0kH,qBCAjBC,EAAOD,QAAU,ssC,qBCAjBC,EAAOD,QAAU,8lE,qBCAjBC,EAAOD,QAAU,0nE,uBCAjBC,EAAOD,QAAU,IAA0B,yC,qBCA3CC,EAAOD,QAAU,klF,uBCAjBC,EAAOD,QAAU,IAA0B,yC,qBCA3CC,EAAOD,QAAU,IAA0B,qC,mBCA3CC,EAAOD,QAAU,kuE,qBCAjBC,EAAOD,QAAU,k1J,qBCAjBC,EAAOD,QAAU,IAA0B,uC,qBCA3CC,EAAOD,QAAU,k1J,oCCAjB,yBAAmlB,EAAG,G,uBCAtlBC,EAAOD,QAAU,IAA0B,sC,uBCA3CC,EAAOD,QAAU,IAA0B,kD,mBCA3CC,EAAOD,QAAU,0zD,uBCAjBC,EAAOD,QAAU,IAA0B,sD,mBCA3CC,EAAOD,QAAU,8Y,mBCAjBC,EAAOD,QAAU,8wK,qBCAjBC,EAAOD,QAAU,s1E,qBCAjBC,EAAOD,QAAU,8pC,uBCAjBC,EAAOD,QAAU,IAA0B,yC,qBCA3CC,EAAOD,QAAU,84D,qBCAjBC,EAAOD,QAAU,kj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CC,EAAOD,QAAU,s0F,mBCAjBC,EAAOD,QAAU,kb,mBCAjBC,EAAOD,QAAU,8iG,qBCAjBC,EAAOD,QAAU,IAA0B,sD,mBCA3CC,EAAOD,QAAU,00C,mBCAjBC,EAAOD,QAAU,8vE,qBCAjBC,EAAOD,QAAU,IAA0B,qD,qBCA3CC,EAAOD,QAAU,IAA0B,8C,mBCA3CC,EAAOD,QAAU,s0F,qBCAjBC,EAAOD,QAAU,IAA0B,uC,qBCA3CC,EAAOD,QAAU,IAA0B,gD,qBCA3CC,EAAOD,QAAU,IAA0B,+C,mBCA3CC,EAAOD,QAAU,0d,mBCAjBC,EAAOD,QAAU,suF,qBCAjBC,EAAOD,QAAU,IAA0B,iC,qBCA3CC,EAAOD,QAAU,IAA0B,uC,mBCA3CC,EAAOD,QAAU,09F,mBCAjBC,EAAOD,QAAU,8xF,qBCAjBC,EAAOD,QAAU,IAA0B,wC,qBCA3CC,EAAOD,QAAU,IAA0B,2C,mBCA3CC,EAAOD,QAAU,00B,qBCAjBC,EAAOD,QAAU,IAA0B,qC,mBCA3CC,EAAOD,QAAU,soE,mBCAjBC,EAAOD,QAAU,8+F,qBCAjBC,EAAOD,QAAU,IAA0B,sD,mBCA3CC,EAAOD,QAAU,85D,mBCAjBC,EAAOD,QAAU,k6D,qBCAjBC,EAAOD,QAAU,IAA0B,8D,qBCA3CC,EAAOD,QAAU,IAA0B,uC,mBCA3CC,EAAOD,QAAU,0/C,mBCAjBC,EAAOD,QAAU,0vF,mBCAjBC,EAAOD,QAAU,s1J,qBCAjBC,EAAOD,QAAU,IAA0B,qC,qBCA3CC,EAAOD,QAAU,IAA0B,4C,mBCA3CC,EAAOD,QAAU,02F,mBCAjBC,EAAOD,QAAU,0mJ,qBCAjBC,EAAOD,QAAU,IAA0B,sC,mBCA3CC,EAAOD,QAAU,klH,qBCAjBC,EAAOD,QAAU,IAA0B,wC,qBCA3CC,EAAOD,QAAU,IAA0B,wC,qBCA3CC,EAAOD,QAAU,IAA0B,kD,qBCA3CC,EAAOD,QAAU,IAA0B,6D,mBCA3CC,EAAOD,QAAU,s0F,qBCAjBC,EAAOD,QAAU,IAA0B,mD,mBCA3CC,EAAOD,QAAU,0iD,qBCAjBC,EAAOD,QAAU,IAA0B,6C,qBCA3CC,EAAOD,QAAU,IAA0B,uC,mBCA3CC,EAAOD,QAAU,s1F,qBCAjBC,EAAOD,QAAU,IAA0B,sD,qBCA3CC,EAAOD,QAAU,IAA0B,0C,qBCA3CC,EAAOD,QAAU,IAA0B,2C,mBCA3CC,EAAOD,QAAU,kc,sBCAjBC,EAAOD,QAAU,IAA0B,oC,qBCA3CC,EAAOD,QAAU,IAA0B,mD,qBCA3CC,EAAOD,QAAU,IAA0B,0B,mBCA3CC,EAAOD,QAAU,0xB,qBCAjBC,EAAOD,QAAU,IAA0B,iD,qBCA3CC,EAAOD,QAAU,IAA0B,uC,qBCA3CC,EAAOD,QAAU,IAA0B,uC,mBCA3CC,EAAOD,QAAU,8/C,qBCAjBC,EAAOD,QAAU,IAA0B,iD,mBCA3CC,EAAOD,QAAU,sb,mBCAjBC,EAAOD,QAAU,82E,mBCAjBC,EAAOD,QAAU,0wB,qBCAjBC,EAAOD,QAAU,IAA0B,oD,4CCA3CC,EAAOD,QAAU,IAA0B,oC,qBCA3CC,EAAOD,QAAU,IAA0B,kD,qBCA3CC,EAAOD,QAAU,IAA0B,yD,mBCA3CC,EAAOD,QAAU,kqJ,mBCAjBC,EAAOD,QAAU,0xB,qBCAjBC,EAAOD,QAAU,IAA0B,2C,mBCA3CC,EAAOD,QAAU,kyC,mBCAjBC,EAAOD,QAAU,8lC,qBCAjBC,EAAOD,QAAU,IAA0B,+C,mBCA3CC,EAAOD,QAAU,80E,mBCAjBC,EAAOD,QAAU,kqE,mBCAjBC,EAAOD,QAAU,k+E,qBCAjBC,EAAOD,QAAU,IAA0B,2C,mBCA3CC,EAAOD,QAAU,s1J,mBCAjBC,EAAOD,QAAU,k1J,qBCAjBC,EAAOD,QAAU,IAA0B,kD,oBCA3CC,EAAOD,QAAU,s+J,qBCAjBC,EAAOD,QAAU,IAA0B,sD,qBCA3CC,EAAOD,QAAU,IAA0B,yE,mBCA3CC,EAAOD,QAAU,spF,mBCAjBC,EAAOD,QAAU,0uE,mBCAjBC,EAAOD,QAAU,8hD,mBCAjBC,EAAOD,QAAU,knD,mBCAjBC,EAAOD,QAAU,8mE,qBCAjBC,EAAOD,QAAU,IAA0B,8C,mBCA3CC,EAAOD,QAAU,swD,qBCAjBC,EAAOD,QAAU,IAA0B,wC,qBCA3CC,EAAOD,QAAU,IAA0B,gD,mBCA3CC,EAAOD,QAAU,81G,qBCAjBC,EAAO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","file":"js/app.1960eda8.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/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-19bc3655\":\"6767dc95\",\"chunk-18bc93e9\":\"dcaf1967\",\"chunk-fa696058\":\"195f17bd\",\"chunk-219c1340\":\"fd54202a\",\"chunk-79b7d178\":\"280431b1\",\"chunk-4245bf35\":\"4090f0b0\",\"chunk-6f7544c2\":\"5bd56b00\",\"chunk-837a3132\":\"cc630e22\",\"chunk-2d21eb79\":\"8ee971ea\",\"chunk-35c1ae9c\":\"cc2f7bc4\",\"chunk-477730ce\":\"660c8f3f\",\"chunk-9657b014\":\"d344d984\"}[chunkId] + \".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 = {\"chunk-19bc3655\":1,\"chunk-18bc93e9\":1,\"chunk-219c1340\":1,\"chunk-79b7d178\":1,\"chunk-4245bf35\":1,\"chunk-6f7544c2\":1,\"chunk-837a3132\":1,\"chunk-35c1ae9c\":1,\"chunk-477730ce\":1,\"chunk-9657b014\":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/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-19bc3655\":\"a264d9e6\",\"chunk-18bc93e9\":\"3fe23501\",\"chunk-fa696058\":\"31d6cfe0\",\"chunk-219c1340\":\"ec27c90e\",\"chunk-79b7d178\":\"7a45f963\",\"chunk-4245bf35\":\"758abe01\",\"chunk-6f7544c2\":\"65bea27d\",\"chunk-837a3132\":\"3b14fbbc\",\"chunk-2d21eb79\":\"31d6cfe0\",\"chunk-35c1ae9c\":\"d36f1b68\",\"chunk-477730ce\":\"66be1412\",\"chunk-9657b014\":\"07a1b363\"}[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 = \"/axis5/\";\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","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAaCAYAAABYQRdDAAAACXBIWXMAAAsSAAALEgHS3X78AAABqklEQVRIia1W7U3DMBQ8o/7HTEA3aJmgMEGbCZoN6AaECSgbtBO4TEBHKBNQNnhMYPSic/SIkuDSnmQlsuzLve+4GCNy4IKMAeg6xsIfh65cZRKWAD4BvAM4uCB+8HyfUipbcM0AfAMQALc88qGqAVSx8Ad7d9RD6KnMYg1gY/YnXPrxaY75Cz5fAbylTePLLwB3VD9xQaIL0rilj3TM547q2jjSZGu2qt4PkVpIxpkb+lhVT7Oi/xdi4SWpBOAvQko0Fl2StEGdUi5IBWAF4JoR71TQsdfp75ELcg/gyew92gMaZRfkwUS6MP4r2zkKKk2bW6bPjoot8d6878y7DVCDK6PA83LVZdIpGCmRC7Vr5lrvsfBrVoa3Ck8iNaYvqbKMhT9LbUqpRLJkdzoLNSkbxbb1gbOVXkJtc6chbant6ky5pNIu04o9cuaCrHLZmC31dNBi+UVKtYnshbMpB+nOGn0zygXZMMXAzl+yerrO6pQItFDzXIYGn3419QG9oJVni0FN1r6hHV/xnPJ7cO6z2ahp8wEX6LzSidoE9z8/E2mpammPZwD4AYaJrnSHtemVAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/returnToAdmin-icon.1b06fe65.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAaCAYAAAC6nQw6AAAACXBIWXMAAAsSAAALEgHS3X78AAAA40lEQVQ4je2VzRGCMBBGXxzvpgNL0A60A6EDO9AStAPswApk7MAStBJjBXHWIQyuiSDjke8A+8cj2cOu8d6TkindHLBV2vncXpO1KZApXQFsVPjgc7tNgkzpMmDeiIu9As5AOEUAFIpR+Nw6w+ke+/MvugFLAaWb1F37sTz+ALqEHl2ARR+Cz62R9yiSe7T4sZoPkDQuU7GsigcdgHUbyCVu4JT9URe7Wi8NoAE0gL5qrJIyk44qJv604cvs1hOiPlFzzTQ/ivkTYFbZ9VwKoJ2aOV1Vr6a3vaYWYpuusoZeRcATunZCUBcEwLUAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Medium Gray - Selected.2f9d2c1d.png\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Green.3b91ceec.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Blue.d5bd3a73.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAlCAYAAAAwYKuzAAAACXBIWXMAAAsSAAALEgHS3X78AAADNUlEQVRYhdVXsY4aMRCdRemX+wPEB0RImw9AEamX5lJvRVq6S7kl6Wi5ipo03por9gMSiR9IRJkKvF/gyNwzmXNsn9nlLsqTVgh7/PzsGY/HiVKKfEiqZkREfda9V3m69w4IIKkazTOyLKTK011wnC0QRHMiKoio1qJY9whfqfJ0HSlsDL4B+KTFp9sFES1Vnsq/xnOB2DFjvPRMqBdQgnzqImV2AgssQzufVE2BRSzthZ8FQpwWVcS4kZGObZFsoXOVp+I5LragNdxenDtOAoXsk5B7EnKg/8d+JGRBQtbcnnGNLuFi49ckZHn+zxqLloSChByz/zUJOW3DxTh2hrOHjRzFBr0DJVxtDsQ+1q0BTMFLPZDWbZmQJkz6mBviLsAZ2OtY1juoBQZzUQR2SdW81SmjbZ50QHuhMC7uSqoX+L6LJxzQXKcdlEiWXaBd/MtKwp1gUlcPq7evoEsxgMCro6fytMapaQUcsq4x7IWJwXVSNfOWHKW5Aa7giTNwG0kj8HTFofESkjnyXo100zWWObRnxEkgAlLffyJWJO5icx8bCLRfA496HNXMOlj+VM0AO65RcBtc+LWrgLgE8Exf5WnpLFhZpSJZbutj2/cQ78x5GKvLsFYHj23SaZHPVdRPqmCfKMe4Newvcjcr06am0g4K7IKkakqkr2lkfWmq+II/A15MIP3JkSXCQu9MbcXsCGFT+OL+RQVaQgrXownChPfp8BoCu6AXGDskog0RHXS849t6bG8s2y3GhzCD7W3I6I2nPcMk34noExEdmRAfdN9H/C6IaEVEHwL2dxGcXoEbiAtNwHG0bDMmwCfuGOg/w+XiCdzzJVKcC3pXfgb6tMDPMUSuHczw+9BCVIZvBne7sIB3ovh9Lg4hs+LGTJSxQ/TgETCE+HfRsznepbfqEZnn3bpVT2H3D5VSP2Bn922UUt+UUhN8GguMcb+RHY03SqkDyNo+vheY3G73YeXjcrn4iNSygcvurTTz1TFmBpsjbGbMzqQd/T+xHYi57i9xsfkmljsP2BmX7R3cauxW8AQPGZcbFfq9Ol7jqlsgdcUfDIbQVXctTLrk1P+6WPj3IKLfq3mUyG/nY+sAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Gray.d8ccc332.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAAjCAYAAAAJ+yOQAAAACXBIWXMAAAsSAAALEgHS3X78AAADcklEQVRYhdVXO27bQBQcCump5ASCcgECyQFU2DXVKDUru1VnlyrtTm1csXYasrYKHSACeIEIOkFEnmCDR80S683yI1LOZwBC0n5m5/2WT55SCnXw0mICYGJM5yr0s9oNLXDwCTIV+nnTTqdILy0iACsh4KMhB8wAxADWbeTkGgNYApgDOFh84DjIF7eKpKUJgK2IrBNhGBGp0Je1dQL1ulWdAONcWReQ85UhlUhanLUd7DBIBCSOeRE1Jl+rx7knIOf8lVARWQpN8gxJPtO/uzxI8jGS/IAkn5jrkeQrJHl8Dpexd0wtQTXGiQhJvu5JOjcFiaFI8m0fLoMjoPFj+T2iQyWx111CYkOdQh0wXcCiivpwVdE9hTqmLoyYW3K1HAbwlnnkpYVU/nYgl8ZaV/6I10probRgS545BQ8Giy2TYhpdgtBAoByVPtD4+aVFjjusOQdl2oz4JRhIFpCn0314LkZMcrM6+yBiaC7tyRI63Gtd7ueCFX2gsflAY22UN08pUoW+iIz4WuoMCqruM75WZxcUKbfFdmQNJF2FUqBuRPS9GPeNiIN/wtsiq0TylhehsZcWjQfpS9tur3RTwPmhWPH5vZ+0+r8tH121M45nlgdtD8hdOeva/Tg45IylCv2ZU6TDY6ZXMr72mjvpUx+57CPUaNeCau+QbqWlk4nslqvDnqVrT6Mnh4JeiRmBdd3/Ix1eI41eef9NRVoiIn3vGRd/wE9dhM7u6Y+ItARrcejyNwV/Q2QfvMPJuisAL8b+PYBHFfpPnFfW3C2/v6jQ9/QE112r0N94aXEH4IFTX1Tof7N4BNfk+6HXGDwfVejLXPXunuLkfjnwgwgE8NVLixuD8JZzO5nTexyYemnxiQI/c8/R5JFz+GwAvOf4g0Wlx/FbP6lC/0gPitA7ew7ApkGgjSP5Nl3WWk6p0NT07mwxXlqIdVcUWgsV+juu+c6wd8Gjw5slzunMJcQ/ASwkf9oWq9CXfLuXaHhp8WzySM7Z+cl83LuMahJpe0zn5J5pUCY1vVt9MgL64CfuW5g8OicdZ97bKeYUKYfRmhuGwLRWclIOXjDPjgbpHXNwR44rjk+twqkFOfd1IrVXlBHSayvh9eYNK3jKsC+4b8ErRSDV/czxG2McZrhZKLYB9/ysxv+Ly/zSf2nfBP++SAC/ALWs8BDzaNcfAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Proofsheet - Gray - Selected.b9e3d0fa.png\";","module.exports = __webpack_public_path__ + \"img/Devices-background-green.6dc424e0.svg\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Green - Selected.a1244f59.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Green.0a71e625.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABRCAYAAADWxZSqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAD2klEQVR4nO3d4VHbMBQH8Ccu39EGZAPSCQgTEE9ARqATNCOECWoWqMIGyQSFDcIEFROop/SlF+LYUcizZKP/7xOX82FJ/CPb8umhnHMUQhk7JKJh0ME95wq9zKGf0hrDpIwdE9GUiCZEdNnXTn7SiohKIlq4Qtte9iCyg2HiWcgP5M0X73+IdyKauULPu9/UtCphUsb6mWie4Ux0jJ+pJpil6n0IEwfpZ/ea2RmvRDRGoA672H7K90cIUrNrfw/V5QamtAmTMlZjkILdKGNnPWlrVNuZaYZ7pJM88EMK7LjgWWmKQTnJJcasanDCGtL7dt0ldiMjGnJIQpZEpjyjA1P0648Px92RAcnqKeaEp9pvrtAvEZrUC4PAVyRZra+4Qpf8dHt/5FA/dpUw7dw66PZaWfHiCr3g8/urzSjiuX02ygE/7jZZuUKvIzasK8qAMI1qLvuLFG8PlLG3HGAT+9z+yjUIOCjHINGZ/U71Gmqc6Lze3UXAQVmGKdPZ+CwhMxOc762lL+Uo4En8/dB9nQB/v3i1+2sQpjhKV2jxZQRl7DLgkupvzMUvf/wW4MfuZyGXOYAgCBOIQZhADMIEYhAmEIMwgRiECcQgTCAGYQIxCBOIQZhADMIEYhAmEIMwgRiECcQgTCAGYQIxCBOIQZhADMIEYrChII5xS2V4QnZjD1s6d2WTAsIUx03CjZlX+7tI2oLLHIhBmNrxmui8ay4ikcIrwtQOXwHlOeL5/I7hR1+9hUtMP/Jnsfi+TnHP1I41b8mOVVLHz0a7/1VhyTfnseol+L6uEaZ2pCipc6eMLfjn2CV1fF9HCFM7Uj25xSzwtS+opA5AEMxMcaCkDohBSR2AUyBMIAZhAjEIE4hBmEAMwgRiECYQgzCBGIQJxCBMIAZhAjEIE4hBmEAMwgRiECYQgzCBGIQJxCBMIAZhAjEhYQqptPHlKGOz7Pc5QjYUpNyLlZJkv7MpqbM6ssPhWhk7doVeNhzzFT0E9Cl0TLIpqROyn2uhjM1mhlLGloF//Fh7+XthwN+u+yON9Rv9fitjnzIYwOn+5sIab67QdWPhS+pct97SqnXEYhn7Vso557+JNmBnKHz0ncvXVPAsPov8h/WbLTeXZmXsPPK9rs/PbBumyu5MaOS3XA9doVMV1uqk7dLAPHJxqL6bIUhVmzDxwEz4GwfNnuoub7n7v2jpCv3CawcIVD0fpGlXG5fahxXwnUDhklf1iCA1q7xO4UCNuMgm/Pti3W6flKDe5mmujjJW87rLJOEKbgpvvP5WZrjy/2mNYTrEv1rpcofOtG5YiIQmRPQXWVcLnQUzMYQAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/GooglePlay.262db852.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAACXBIWXMAAAsSAAALEgHS3X78AAADNUlEQVRYhc1XO24iQRB9bTkfvCdA7AVGYg9AAHFPwsZEkJLh0KHJSNeRY28yE5uAAxiJCyziBMvMCXpV9mtv05pPj7Etl9QCdXdVvfp0VY0yxuCtpLKiC6Drse+MjvI3CyW1BqayogNgDiABcBAg3pWEvyujo/tPAaayYgLgRladUnpS7sUAJkZHPvj3A6ayQoB0qCgoVCorBFgqXmwNToA1LaT5DdL8nvduzQv1A3k7SPMd0jwOuW/XRYDVAwADoyMJo9CeR1dBhr94V3hT5mcQNQIDcE/Blu4CeOwDseB2lDOvZ/tPtcDorY3R0SFUIEGJIStvf+W82POAUVDaAlRMHh+UDemOD+JsYLHRURmwI5cPqsuQVdEm1GuXDedVyfqtAlSTdw8lnaKUmjwWUq8SGtAm5GcDa3reti1JiHoAniSdANx+NLC8pvZMvF4pOTdjmBcA+iU83cAoNAITpYOS/TlD57YZAbZ1Cu++hC+hd5upoZ3ESPONtz83xnRq+B7ZtnxZXaT54V1akm28LLSWVjXh+EVPXZec3XCFUUAT7rIJ13lJ1tScUs+RkZR4vnYFjT2cwySvBm2nU2f0idvwhjRxcCiUEG5CWwpBzdkJktYGtZxgYyracXQuHf5UViT08I7TbutvgDd9jFDxxKlLGxbjmL8bAm8zlZwPzANpAUnIw2rUZwD7KLpUWTEE8OjIlzq0NDp6nlRVVhjvbMb/j0ZH6tXCl3sjo6O1yoqF0y9/Gh399uQIjSjvj73jyPl+weYLKpE+t5RCqbJi6gixPXDLItqrcFRPZUWfoH6Qx53bZqKHa+20L7/pX52UC6OjIz21ZCM+OQOwrgHl05Hy1iF3PUdU1rGtD0BlhVg3JLhKMjra8s4TQxpCS99rQQWW4fsLYCz50HTZ6GjEfrlQWfHgypEc8vON+bV3DakC5nvG5tieIX4eaejF11962iq7I9/YlWNzrETntZs+J8BEAVFP6V7XKskxUTZm3hwdQQvm1JYyhtzvlXy0lBJlvs5wF471xgnXyEtay7Dmy+sxpGPyjfn8wcn1gftTZx9uKJnsPmg7Lh2/bIENTf5Pp68JDMA/FdWbq6KXSA0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAACLElEQVRIia2WoW8UQRSHv902wSBGIBAIEkioPEcTECdIqKjoJhUVkCArKhAIJOJEEwSISsSJCkhI1iBOlhCSkpSk4kjKfwBuSBCII0Nm85v0dbu3u6X3M7cz+2a/ee/Ne3NZCIG6stI/BB4BQ+CGXs+AKfAB2AuF+3luYYvOgLLS3wLGwP2OdX+AEbAbCvf3QqCs9Pe0W2fenwBH8uaaPLxq3r8HtvrAKpA8OTKQQ2AnFO7rGePSXwG25U0C7ofCPe4L+mTC9TbmJ+0yK/0rYANYD4X7prk7wAFwXWuiV+/aQLkSnyCHFiINgJsKXaVQuO/ApkIa9aLLo1ynK2mnb3JD4T7L+6gV5bgVNNTzST0nPTQ2Jqtt5sumTuJhSDkZGJv0/DorvTfzz9Oa5FUXKCnFe0M5qWtQG6+Ewn3JSt/0rUbQTL8p2es28dETQZ4Cx2Z+qrJIst42gqb60DDWSTrCSSZcx6FwH2vvNs3QbuKccnUDVIDbbcY1yBLwTMMYlUkXaE+9K2qkYuyjXeC27Pa7mmwug5Hx6iAr/V1jE0/XE4W48iQr/UvjDV3eYFrQkoovxXym8Rvl5pcS/0CHon6UfwNrKuL5IE5jPq51iouoFZanh9h61IW3dD3M00wbWgN+GJsY9sm8VtR4w3J6P60qTMuqk3iEJynxDV18bhjngvqqLyz/b4KkK2PYFcZLg+gJWwioC7ZQUAusanELBTXAqv8fcf7Sp66XgH8gRuv51tWmXwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsSAAALEgHS3X78AAABPUlEQVQ4jWP8//8/Azp4J6tqwMDAIAAVviD0+PYHDEU4AIqB72RVExgYGBoYGBjk0ZQvLNjGu+apEnMKAwODP5L4RgYGhgl7uU8fgAnADXwnq7qAgYEhHpu9jQt5Dl0xZ7HD47DCvdynJ4AYTEguw2rYjGaunQQMA4F+56+mAXADod7EBj7uC2GzJGAYDEBcCI0A9DADgyPebCf+MzLwEWmgvPNXUwMmpNjEAD+4GV4QaRgMCDARp454ADLwAi7V2qf+mJFo3gUmaKLdiE1W8sE/Ta7P/88SadjCvdynP8C8XACKUWyqOkI/czH+Z/hEwDCQXpAZkGQj9Pj2AwYGBgcGBoaH2FzZEvHlBfNfhis4DDvIwMBgAHIdiIOe9UAxDkrk4EQKBSDLFgg9vn0AmnhByQwGDiBnOwYGBgYArYxkuDf/vikAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAAC/0lEQVRYhc1Z7XEaMRB98vBfdACpwOkgSQXCFQRXYDrI/UgBl/+ZCe4AVWBcQSjh0sGpAmWWrGxxPl20J/DxZpgB9HGP3dXb1aK89xgLZd1HAEsAnwHQ+0+0lTdajd50ALPC9b8lk5V1KwA1gMobvZU+7Ea6oAMrnE9kFwB+KesaZd1asriU7A6AA/ADwJfoNUQ2QEx6MGaVdXMAewAHb7TICon9KLbnTPprNPSYs3+SrLJuyZa7lWwoIB72zzZE7wHjU04W1eci14U3umEFycabmE0QPatVx+IkDDhGDxz8V0UUCTXYR+8nIUrq0KcSvQdMWXcU7KksqqxrOQz/eKOXL9+XpNtLQVlXAfjG29+HbFeaFC6FmpMNoQrPuEqy3uiWNZiwCLF7rZZFRBbBujNmXfPgzhu9S69Pg1PpmkvGABL+rTd6P2LLlkNhF4gr7Np9qENp0Bs9F5Kc82ZErPZGk06HMUowG/4BK3bvaNx0Up6oxoySiCWZi4niX+yFvH/0HM8vIhunVam7yKLfATwNTeLQqjtxKEb3gGW7iWO08Ub/JAtSIgnJZIBww+vOQlaC4F4Jal43CiV3sGUcozmpmT2w/N+8GMq6lxQ7K7iJJg8LuXqkXL3ZJ/5cEgbJ+D4H0T6UkG1YR5PoHjqe30xBdsuCL8FGqOXxbbisRFTW7TlrDeonW5Su6MYbnSVdnECaKA883/DAil3WCnWQfvmGOy1DIKIPXUtlgBTmkWuE7dGyUWVOuJMUM+9ZGwSycWU+6t51gaorSbYbHx/4Xn9VOMYsu6eKiBUVHJdCLF3b6N5zeD8KryAPk8KkCqJuk6PinD9FryA0AZO9tZNCxhtdYQJEinI79PTSzncxeizaa1VMfbuVEIWELGc4cT2agfgwD2p8Vm3Ap/OkU80x1p6pbs3qreWSXbMOL7pjfcU7uzcuH1ec3dZj+xLIDQNqjHE37546e9HQ0L81T9HrgbOjtJCRkw3oId1rpYGCpYjsKOniFqT0T7fnEWteAeAvqqZ8gYz/dmgAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Physician - Drak Gray - Selected.266349e3.png\";","module.exports = __webpack_public_path__ + \"img/AXIS_Favicon_green.5a010fc5.png\";","module.exports = __webpack_public_path__ + \"img/theme2.083b5da1.png\";","module.exports = __webpack_public_path__ + \"img/theme1.2a88f90d.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDI4RjU0NTlBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4RjU0NUFBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMjhGNTQ1N0FEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMjhGNTQ1OEFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjFtFyIAAAQpSURBVHjazFhNSFRRFL73zdgPBo3RPvtZiZSj4R8tiooWLSrICoIaN2qB/RCkLSp35aa/TWZQLtpUUEaryMggHQVFi3DXZD+bCJrpD8Kcd/ru87zmzuO9mac+zQuHO/fce8/73nfOvee8kX19fWIWrZjFamkhZUjQCH6m/Bqora111YdnACZiCtFsCLGbhPgIeUUABJ2EjjC+wiCvhgXdmukbTxfYAVPIoykzdH2FMVkhoZCWmkQos+bcBMnVYUnn8bsZUg8ZnUtgV/8I+X1wYtnOTYt+/Mi1cJGkd+hikPWQB5C90wVn+Fx3Bq76UiDo7JGK4v3l5eWfS0tLN/nY9xpSDrkJKQuasc2QKhVTalBYWPhbSrkyHA4v8/mM7+zOx5Co34Phh7HbiJlj9mBgYOAOgMlQKJT22lBZWRmpqanZpaneKDuQE0G5UrHVi5j54NArbORx/CNgsz4ejz9yTF0TzHoQwJShR36NgaUoEe3p7++/7DKd4gNQFgQwZaTbRZ9k0ZlSa4vB1O0c9nr9spYv+CNuSjCywgPUwzz2xvVMMRvG8p4ggFIMRAC2WwTYZsSYA9Q4QI1WV1evNQzjLsYVkHboWmcDzA9jEQ9QMQT6ewXKSkpESUgTfio3t+AgVHgk/UDusVHkxi1OZVVV1Sl1KBBTI7ZucHDwK8ZD+FnE90nC45T3BgGsSwrKuhRLSkra0N0CU15vfoNdmXRhq8xvzswXY6OoHug3GVuXSPOZUoyNjbXliDkFKuERX20sgSXx2GJpXvpJoaJci+DeJtM0D6XT6YPRaPTTGjSHCxVjXX6BSZ8VbIzz3ObpVKeOS7rMbe9sK9gu7eaO+Y0TlEon4ZLDzFgqyOvCCS7GfdekkFFvQNI6fTC+ilme0wpWaEl4N+p5VToXo8T4RlNMRgBkw1RPNrPj81Xz263bTu7S+jix2aPj85WS/LQUPtmei4CbirFt1mdORt4iaBu1NVlz+Czbru3RG/Gcai32HnzA7Hexo+7GHb/IWIc7j172x/dplQu96IuvVcDs+0ZynmuHsgN9g/bQRp4bBjsd2p6shrnVnMQvQjaqPbD1VTulTfwciQv7SaE0l0+xQxd0OwWSIoZpfxpmCsBOBY7f2lkc9niB8iomAfapdlr1Z4nJzDgJphp0vTFBRsjF6LALgCJ2YU8eQMO8Zggv3ZodN0Qee9qZZQ58IoOyGRM5ErNySR1kn4/1KtZa4cbT6O9pAd2hxZkFgG//+5xj/3nJWCrNPy6GnczYMZZgFyc0FvV+WNvTyfvqHHYy/yxkt1Y9fAwXd7Vw4Le7xEwnP6iHxy3aKUwyMNvlgsMh6fNfnx7thS1gCe042+7a7mDMXmMH/xp2aR3vs/cIPpX3WN+g6e2QIG0u6cKaRYIkz3j8v80QC7QtWGB/BRgAd9Ftwk6HBP0AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Download - Blue - Selected.176caf55.png\";","module.exports = __webpack_public_path__ + \"img/white-90rotate-icon.c3aa027d.svg\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Blue.e0948b47.png\";","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Green.d844bee5.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/markImages-Icon-gray.f05ea70c.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg4NzhERkNBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg4NzhERkRBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODg3OERGQUFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODg3OERGQkFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pu2xVUYAAAHJSURBVHjanJXLccJADIadHe7rDqADnHMOoYPQAU4H7iCkAshM7t5UAHTg3HLEHZAOTAdZMb8yQrMPg2Y0wL4+aVf6efj8eSoCtvTeeR+K222G/WR776dJYFHtvfXee1/cAaLgpvi+pjNMBEA2x6KxVnkvkcUZY5bOMBFAgYWUrsPmHKCDn3ADDCpNAkARbb2vsDkHsMhegwaDw9rAtW2xSR6WAhTimhlE87XBQK827wSA5hqscxmABG0BumQyILU+UZJ7HLZCljnjwC7Gb5ICWRHtFz4po6N6YAm4Kn3ZJwzq1FsUAtCp96vFHhvrLd0nsYzOiLxVTVeLjL5jzWsCEYdAFOVG/H7HmlZdXVAdTOThcsXwhiJgnatSVWASczmQbFqnyns0pEL5xkBSFebIbH0LRGpRDHRSqtBj/V5rnclIhU2A5qrUHQAvWuvMCC2ymYzYNmLfEVdZhiCziBZZXM2YYuCm3SGzK8gSg68RLVqOqDqtCs8UHENKUYZOgUJSEQMtAv9LbiKysKLBWGmbRCeHtG6qADR/NALCtsL9OxTCcEfD/gP4TUqUHdmv9w9AxpoGXQEYssCDPaK6GjRacQfooAFkfwIMAK18nEqjuv8qAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAHQCAYAAACWQBBDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0xMi0xOFQxNDoxNTo0MS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTc6MDE6MTQtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTc6MDE6MTQtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTg2MTI2ZGMtN2VlNS1jMDQ2LWIzYTctOGQxNDg5MmE5MTlhIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NDYyMzQ5MjItOWVlNy1kYzQyLTg2ZTktNGYxZDdlMzRiYWRmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTY0YzcwYWEtNDkzMC05YzQxLTllMTEtZTAyYmYyNmRiMWQ5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNjRjNzBhYS00OTMwLTljNDEtOWUxMS1lMDJiZjI2ZGIxZDkiIHN0RXZ0OndoZW49IjIwMTgtMTItMThUMTQ6MTU6NDEtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmI3ZWM4OTI2LWI2ODAtZjM0Ni1hMDk3LWJjYmZlZmQ1NGViZSIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNzowMToxNC0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTg2MTI2ZGMtN2VlNS1jMDQ2LWIzYTctOGQxNDg5MmE5MTlhIiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDE3OjAxOjE0LTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pi/1SbgAAAbJSURBVHja7dzRais7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\"","module.exports = __webpack_public_path__ + \"img/requestsupport-gray.aa5ad754.svg\";","module.exports = __webpack_public_path__ + \"img/Download - Light Gray - Selected.d9346c50.png\";","module.exports = __webpack_public_path__ + \"img/Physician - Green.34760680.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAACIElEQVRYhc1YPU8CQRB9eyGEWF2CtmJltCISGyotSGy9f0BFtLY1kYIfYCeh4he4tiQWdDRGQ2Wr1hKvMsaYOzM4i3zscbfIerzkmt2ZfS+zszuzJ8IwRFII6R8DOAJQBlCMcOsD6AHohJ57k3jtOCFC+i6AKoBzAPnEqn8wANAA0A49119YCEegxQIcQxEKAQuqzYtQ5OJC+lcAJICNP4hQHLSG5DX1fNMR4a24BbD3RwE6UHQeAFSmt0pHRCJKFkQovhJzTGAiIhy6GjlsrTmgLw7d16+hhaE9RaYVeu7piFsJ4cSUaqK+m8PFTi52YSH9hewZnkrgDH7zgk7HDJ7fAzy9BzPjB+sZLZGhfUtIv0v5omarUXdE++UT9cePmfHQc7VCDO3zzH2pNvXcUnLGwWFuOJwbpjfmMpEnDQ7XjrRx5HABSxvlzJwqOkR1M4vDiBOyDHtGMdajsOYMv6QwtVcQuH5L3pBYRBpHVovIrbFca2YQKaRayBrVDlN7nZD+vJNjudYo9DPc6EYKsVxrFHq0qZ15Fv+EjsP9wCBFEQPSoNK8wV3TfyNg7tE90k4pKgPm/jm+1CEJ6VOvKqctLdeamurmRx60T0L6TdU8q3FLtUY1z6MHl+5dc8ctv0jMbgYivA89d3/cSye9QoaWkjfgtSvTE5FvX37jnCxZSHP8LZNICFblEU5gx20AZwseb/Ih3+24fyWr8aMGwDewyfGjevKVPwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAByCAMAAACGCthEAAAAGFBMVEVMaXEoruQoruQoruQoruQoruQoruQoruTFNtcuAAAAB3RSTlMAwEBw0DCQ1YCcvgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAKNJREFUeJzt3LENAlEMBcHvA47+OyYiINzMSDMVrJw/n9csdJ/rvdDICmQV36zntcTj51pzlrhkBbIKWYWsQlYhq5BVyCpkFbIKWYWsQlYhq5BVyCpkFbIKWYWsQlYhq5BVyCpkFbIKWYWsQlYhq5BVyCpkFbIKWYWsQlYhq5BVyCpkFbIKWYWsQlYhq5BVyCpkFX+RtXSSu4ysQlYxG99UzNwfv5NKRetEMIIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI4AAACOCAYAAADn/TAIAAAACXBIWXMAAC4jAAAuIwF4pT92AAALE0lEQVR4nO2dz4/bxhXHh2o2cRw3ywDJIT1kFaSH5JJVkEsvRpVeeuzqL1jlL6jyF1j+D5S/wKu/gGsgl1wcBb7kYkCbHnppECmH5tACpWJnXdttGDz5cU1RJDUzHM68R80HELQLiOQM+eWb9978CpIkEftEEMV9IUQohOhhtfuZ6neFEEclt2MphFhk/p/h91wIESeDcFZyXCtprXCCKE7F0cdPlShMsUQhzVFY82QQxvZqbY9WCSeI4pOMUI4JFAm4QBHNkkF4TqA8RmAtHLQqJ/gBsRwSKFYVKxQRCOicszViKRy0LPA5JVCcOkxRQOwsERvhoHUZCSGGFnwV24BvdCaEmHCxQuSFE0QxOLXjFlgXWcAKjZNBuDBzumYgK5w9FEwe0gIiJxwvmC1ICoiMcDI+zIhBdGQbiMYmlHwgEsLBKGnSQqfXNOBEjyhEYU6Fg1YGoom/OCsET+5CdOnS+nRcXRitzMKLRgu4Zwu8h06wbnHQyky882uMKTZfVq2PVeEEUdzDpolKP1JbuMCma26rPtaaqiCKh9hP40VjHrinM7zHVrAinCCKIS9zx4fZjQL39g7e68ZpvKkKovjM+zPWmSaDsFHr05hw0An2TZM7wO/pN+U0N9JUedGQIPV7wiYKY1w4XjSkaEw8RoXjRUOSRsRjTDheNKQxLh6TFseLhjbHmSk9tTEiHAy5vWjoc4zPqja1w/EgiqHf6a+c7l7/zZfE6PevrL8PDwKlY5eXv4jZv/8nzpZP199MuZ0MwlqJwlrCwRT3HU737uzj6+L0nZeNnOvz756I0bePjZzLAZ8mg1Db+mgLBzssZ5y6EcYfXBO33r9m9Jyf/e2xmPzjidFzWmKFCUKtjlEt4XCMoLrXO+L7P79u/LyrZ4no3XsoFpe/GD+3BbSzy7rO8YSbMww+TROAjzQ8MtP0OeAYn6UyysLBUWfsOi1P3j5geW4LnOqMJFRqqrCJWtj2a8KDQPQOf6N9PDRTdz6+brRMeQbf/CziZ/qBBjR1Dps78He6Kk3WS4oXOLMlGhALOLPDd15WDpldEP3htdpXhVD/7IenYvz3/9quwSE+W2nLI21x0JxFdUqnwvxPvxXHNawMZ6Y/PBXDB5cuajCQnXoj5eNkBphbASzNvooGgDwT3AMHTGT7s2Sd45HNyXKj95qJgDgxNJSkVOQIn/VOdgoH53JLncwE4ARz8Gma5uh6Z+3UO2CEz7wSmZKNbUZRoRfNFY6Ec4jPvJJK5xiV972tEgu0OJMPX7V5SbKAg+wwRH+3aoWMXeG4lakWWear/4v+/Ue2L+vZZoyrnxVSanFcWBsPOUqtTpXFsW5tioB2nnFfkBIwxodYZ2mp1Sm0OBjL/8dGyXYBg62+unmDQlEa55P7jygODnujqCuizG23Fn57XkB0RGGhFsqEY23y+i4YD89sC4Va2BIO9kn5JdU8KUdFwy6KLI6zVZ72mSXtEYTVwkGnmNwgLeI31QjEh56e5js/8xaHpLVhOp63bWxog4Vw9oE6owctUSmcvu3SyKByU2EQ1Ef3Hq6/dYDj3vhiJd798idx98dnymdIj4ePyvHQ1UKcDW1cCQc9Z5JzpGRvKvhC0DEIv4dvePgqpMeDUBf490pBtPDb9PgY/1Y5njiH2egqa3FIWhsV8r4Q/H+h8Cbnj4eHr2IJ8jkn1eMZcKWRVgmnCJUEYt1kYx2RzP7FItG5KRwMtchOsJvH+g/EptO5+Ln10d9xGpanFqdX/Xu3MIg41uxJ2mCtlVQ4rWymKPDHN+WmrjHyhdZaYWFx6rzJXKwVl3LmLU4rhFP0dtfxjzyFbAjH94Y7hFmuZ62VThDF3r9xDLdcD2gGLE4jK2+b5msGA7ryTWqdFTaIE3ao+zecyAunxZMLe862VmyKvmT4SwmOw2M7XHI4un4AozCXE302FkdXAC3rZCRD65oqSsguGsAx1wQ127mkBQU4diB2X5MTDsPmtNvhkvyTzR7333LjHO/DgPoMR76pMkSd/jSOvepeOATwwmkQjrkORytqWWEvLI6r7goZ4XAdzN464XDrH+KaZwLhLAmUQwqZGQt+8UkrLDu4NwMLKOc79mya8sJHVYYoEo6Mj8N1/R9WwuH2Vh+1PKoytqVw08gIp04I3Obw2TCz1t2pordcNnJxIRyug+nhTmlt5ukCXeeYslPNdLzQHISjvJGnKzi9nS1v9uJOMgjZ+DiUyQ/7kBUOR4sDmklrxyYJKIOLt1034mOYOV5rJb3DLJKAsjkPHx01ytonTu+wb648suyPcFwsWiRj9ThMMixgrZW0dmxCci5DNGXHGzPkhcXB3UEuONRBxgn1PeSNcZHuJJN9LVrTXPVCc2NyZEWoE1UxjKiuNMJOOLbzHrL7n+sIh2EOZ1s4uMP9ylmRJOHylrYwJbBCjazJ186H5YaQEQ6zDs4NbeRrdy5aCNXBUsyaqg1tsBOOzFvKcakTBpQLB0OtKeU6tGnZEkZ1meY3dC1qiFvZXDVJUVJSysfhE45vaWKrdug5k+0tpzjuuKhMLRpvvMxGUylltTuzUiQN/G551inUQplwJpxrKrsMvktUtkNyTKEWCoVD3UnW6eik1hPNxDHecopTqhricaNFqgH15qpFWeNSDZTWMBmEC+qhOVVkhMPA4kxRA4XsqiFJq9NUGGtzpQsGoXjls68UDlWrI9NU6WSPDzXH8eh0aRDfSrHS2gjJueNjar3m5//cvS1ztrmAv2X9juz4G9ljTt4+2Ph/1wKWsJgS4cUGVjItzc7XEpQXRDGEZLeMFa0mYHEgSqoKuycfvrr+hiGco/dekbYms5s3xOjbx2sBjT+4JnUMjNmB34IVgUFkt96vPu5Mc090S0x2WRsgSJLdThpu4DmntLQtNEVf3bxBoCRqgLXpfvkTVecYegx6ZSF4FilbjCcamSxhXcDUf/7dE0pFkgKsGeGIaiQjGqGyPg72V9ytVSzDwEOY0jb7G0BZCTdTd4v6pMpQzVQNqTnKwweXLCzPpw8u12UlygqfrTRKwkEzpnQBG4Dl+eT+I5IT3KBMH917SN0hHso2USlSzvHWQVEMPaanygdaAJJ4J787WH+7ml8FPgwk+CBtwCDRBzkbZWOgK5wQBy8fKx/soQRMwuyrWhuhu3hkpskiP53GU8pKp4lK0e7GTQbhnFqI7lFihM9Qi1r9/8kgBF/ntn9e7LiNz04bLR8nD2Vn2bOFljOcx4hwxHPxzL2zTB5YbcLIPvMmh6r1uSyVsqdcmNwq3Jhw0Dv34qGJdthdhtHBsV48JDEuGtHEJiBePKRoRDSiqd1jvHhI0JhohMmoqvQCPlR3gZGQu4rGJwBhBXyS0B63mxaNsGFxri4UxUOcTnpo5YL7xwq7EazM+7cmHPFcPD2cxO4ThWa5wA5La+tVW52rihXr+xmiRpmiE2x1kXOrFmfjwlF8gtbHN116pMMinCyE5Wx2PFa4S20APBPgnnVdiUa4tDgbhXhufSaU5m0RZYkOsPPl9kgIR7wYjjrCj2++NlnhizVpKqGnChnhpARR3MW5yz5p+Bxwfscy03JtQk44KV5ANAWTQlY4KXsoINKCSSEvnJSMDzRsoRO9xNQEGR9mF2yEkwWjsJMWWCGwLucUoiRVWAonBa1QKqI+g2hshRMZz1EwLKxLEayFkwctUR8/VPrDLlAsM46WpYxWCScLWqMeiqiHn6Z9oyUuQDVHscw5W5UqWiucMoIoBiGlohK5kf/dCnEtcxv7pxt/gUjiZBDuzyZxQohfAZfP0UK9klMdAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAACBklEQVRYhe1Yv0/CUBD+WtCQGGITMEYnJxaNBOLCLIlxs7MLE9HZlZHVWeLEX2BdSXR28CeJk3F2UWITjWHQPnNwfZZSfgi0ZeDbjvbd93F37727KkIIDAvFMPcA7ADIAUj3WFYHcAWgJnTtfGjfg4QohqkBKAAoAUgMrbqNBoAygKrQNXNkIRyBUxag/lOEDYsFFftFqKdzxTBPABgAlsYQYXOQD4N9evO5I8KpuACQGVOAFyg69wDy7lR5EZGIrA8ibL4sc3Q9kODQUSQUH0RIGuJwp0mmhgvT8FGAF3S7gFtCuC6euKiCxCuAFNWLnZrCCGfEJJBgblkjJZ+KcxBU5oaCs/cwasMNPcp3B1ZjnQHZXIx02LvLUXx+C4c912FntAia1t/7yfnBG08x5FGyE+ULrIUXh6eVmIJb80fa6/EIjp+b0l5bULF//SXtx+04Ni4/pC10zUnUBXruQE7tc4sGiXQYBeqJmRA3ZkLcoAPtgao25HOkTkLoOj6YxL8aAxUKQy1kEYSa3Qa8hXT7EhpC15J2YZS5nwwaFnPLXVPllj/waDB3Wwh31MUQhBTtbl7uWe4dKwGliDgqzoHLa6654Zbfr06eCO+Erm05f/Q6WfP0ok+Rsdh33v2g5+zLc8ekDzpKx6En39QP4QRemAJwNOL2pjW0lmaXvt9KpuNDDYBfvXbHJdYPw3kAAAAASUVORK5CYII=\"","import { logDetailed } from \"./utils\";\r\n\r\n\r\nfunction openPopupInWindow (url) { \r\n\treturn window.open(url, \"_blank\"); \r\n}\r\n\r\nexport function openPopup(url) {\r\n\tlogDetailed(\"popup\", \"openPopup\");\r\n\tif (window.openPopupInApp) window.openPopupInApp(url);\r\n\telse openPopupInWindow(url);\r\n}","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABzCAMAAABNVgvhAAAAM1BMVEVMaXGUyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD6UyD5QkNJ6AAAAEHRSTlMA0KBgEPAwQMCA4CBwULCQmxVHCgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAz5JREFUeJzt29vSoyAMAGA5yUFrff+n/edXCNCiNQLqBbnadcf6TYAQcbZ7aMj5gaEaCxGNhYmHs9RTyoRsLEQ0FiYaCxONhYnGwkRjYaKxMNFYmGgsTDQWJhoLE42FicbCRGNhorEw0ViYaCxMNNaZuIk1SDns/fsNLM4m8f9Q83oQa6ACzt/fT2ENNPouIB/B4u85DvoEFhMfqu3nXscaVAgiD2GNQaoU4+MjWDxIFf2vWGb5o76XJX2q1FJG2RNWogaUK6FrsszmHRew+OTrJ4+cm2N4AasnkCo3Zv36d8HvY/lpRUFhoWznrsos5lDCI2ytJzu3VWbBbkN6uPayl/qd++qyYGOe/DTqxa/5Xpnla2hA4Ob3EFZlcViC7Pui2G1OK7LcYM0inERuWHc606ostqvanVgVWbDfkLBmOtVm+1eXxWEJqpSKbJf3miw/2aO0HFdVYcFkj7cXp/qxCGuxXjDZo+UGqr3qXo8FuyCJno9SlWd5VTiDoOAfUxVngSqa7LAGDqpKs0A1ZqkKs/rkEgQVOaoqy+J2DYrojQa65gP1qgqLpoYKqhhCVZQ12OfHuXIqilAVZdHEbPcq1E+VZK2CqYCqJMuOYbjjnVWVZK0/Ffbo8qyqKitd8a9m9R+DqM+rslmDlNKVKRH+lj8QGffur8Hien3pE3QpVTRIDku3glewonPH3pdT9RrNnKXKYPHoiHY5+vg830a0DKVY/jXC5+Xr2vGWoRDrW/WfmT4+eZ8w22ARFqwzogCouq43AfPHC30F1mgfvZw7woccGXw/Mfp0qk6zXBfqWij733KWXZqzt6J682i7JkvFKlfRRZ4ll2WH0Phh4uuVswuvCMu17CHCuMl1Hyt12K9uZ9k9Jj78vJ9F5wSB3M3iInGLnfI5pSqTpVPJYrcXCJO6g/hyeg8r+YHSFrJzvVUR1rrkog+U0r3kF5taaNYQ54VLPUEz8+uwvSJrtHmRkmmqovbKlEsWmmXmzSi2IeJZ/SYqp+nbYhl9JKRv/76CHjhsR7OOhYavzB9BxrIoLIt/XTNKvwpO9XMsOOyYjVJay2Jbcx5LaiallBXSk8W6LIZDa3CNakMWR9d1f0XRxbfsmbaEAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Add Patient - Green - Selected.a1244f59.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAZCAYAAAArK+5dAAAACXBIWXMAAAsSAAALEgHS3X78AAABAElEQVRIie2WPUpDQRCAv30+rJcgpEiOYG3lJbbwENYewcILSCKewG49gWAngTQWuYCQVDEbEjAk4ISREZ7hPfDnpfJNMzuzM/MNswu7TkTYp+Qupn0SHnPgFWiZ4w2Y7QQdAO2KAuMS3xFwaOuZAlaFzUsJ/qoY7WLqAi9l1SX4zq7PxdQDzs3cZMDCjDVwW9HpT+S6ELtQwNKMOwl++tfqEvwIeDBzlRXm2K+h+0+5MT1VwAQYSPBPNQLurfG5HvIFkNVYXMe0cTEd67nmEvzyGzm/gXxc91o7L5MG0AAaQAP4F4DSf5GLScEnwKnps4p8fcOf9cEChhL8+5ddYAs90UEY9gzVWAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjMwOjU2LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1MjozNi0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1MjozNi0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5OWFjZTIxMC00YzQ5LTU2NDgtODVhZC1lNmM3ZGE2MWJkYmUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTlhY2UyMTAtNGM0OS01NjQ4LTg1YWQtZTZjN2RhNjFiZGJlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTlhY2UyMTAtNGM0OS01NjQ4LTg1YWQtZTZjN2RhNjFiZGJlIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5OWFjZTIxMC00YzQ5LTU2NDgtODVhZC1lNmM3ZGE2MWJkYmUiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6MzA6NTYtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4ow6EtAAABZ0lEQVRIiZWVYbWDMAyF8xwgYRKQMAlIQMIkTMIkIAEJSEACEurgez/WjBDSUu45/dG1ydebpeUPkECDiCwikqLFCz1yvIjILCKbAH6MfLUCXbB+NTZ2JaAvAVSfG8n7fKg+J1fNNUACnsDU4EgTq3sLWq4AqyndFQCz14JmAQbOGgxAA/sGgAc9gE7yZA022oBnTjY1AFS/vRpQAyWXbGyAHDrTWr9ypKcbzSkj0Kn1fY1rIAXYuQedABGkBErAy/02cizdEgFKkJbSvbMT66g4aost/5G6jNq7CdICSuyXtuioBujZ36MIZAGq9x2IdoyWIgKtnF+FJzBz0cK+JfXENUeqF8dWLkI84C5INfF9/7oIMlQCF9qaYWK/tIuHDMTPPpxvcglkAaqPDUrsbWg3ekANtLl5wnx+bVILKgGuHP0AmHLN3mIlcQvoB1BI5+x++H7RWiEedAAoZMgl6m8mjkBzlOcf9awenoqaSIAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAaCAYAAAC6nQw6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzI3MTYxMDZBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzI3MTYxMDdBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMjcxNjEwNEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDMjcxNjEwNUFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvPJG40AAADQSURBVHjaYpxywpoBDzAAYgEo+wMQX8ClkAWPIROAOB9NbCIQF+AzKABqO7JL/IF4I5IrQAYkQF2GbuEHFhw2w4A/FCODejQ+yBEOTHgMIRbog1wLclEjA+XgAMigBhADiO3JNIQRRDBhkfhIgI9VDN2gi9DAQw/Mi2hJIIGQQR9wOP8DGvsDIYPIBqMGjRo0ahBegF74g8qkBWhiIL48Er8ASwkBdxFyNSOPpgadzw8tXlHKJZhBDWhlDrGgAN1rH6BVEHKFSAhcQC6XAAIMAKqgJVavDi9XAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Delete - Pink - Selected.bd31f963.png\";","module.exports = __webpack_public_path__ + \"img/Advanced Search - Green - Selected.eae9b9c5.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAAC/0lEQVRYhc1Z7XEaMRB98vBfdACpwOkgSQXCFQRXYDrI/UgBl/+ZCe4AVWBcQSjh0sGpAmWWrGxxPl20J/DxZpgB9HGP3dXb1aK89xgLZd1HAEsAnwHQ+0+0lTdajd50ALPC9b8lk5V1KwA1gMobvZU+7Ea6oAMrnE9kFwB+KesaZd1asriU7A6AA/ADwJfoNUQ2QEx6MGaVdXMAewAHb7TICon9KLbnTPprNPSYs3+SrLJuyZa7lWwoIB72zzZE7wHjU04W1eci14U3umEFycabmE0QPatVx+IkDDhGDxz8V0UUCTXYR+8nIUrq0KcSvQdMWXcU7KksqqxrOQz/eKOXL9+XpNtLQVlXAfjG29+HbFeaFC6FmpMNoQrPuEqy3uiWNZiwCLF7rZZFRBbBujNmXfPgzhu9S69Pg1PpmkvGABL+rTd6P2LLlkNhF4gr7Np9qENp0Bs9F5Kc82ZErPZGk06HMUowG/4BK3bvaNx0Up6oxoySiCWZi4niX+yFvH/0HM8vIhunVam7yKLfATwNTeLQqjtxKEb3gGW7iWO08Ub/JAtSIgnJZIBww+vOQlaC4F4Jal43CiV3sGUcozmpmT2w/N+8GMq6lxQ7K7iJJg8LuXqkXL3ZJ/5cEgbJ+D4H0T6UkG1YR5PoHjqe30xBdsuCL8FGqOXxbbisRFTW7TlrDeonW5Su6MYbnSVdnECaKA883/DAil3WCnWQfvmGOy1DIKIPXUtlgBTmkWuE7dGyUWVOuJMUM+9ZGwSycWU+6t51gaorSbYbHx/4Xn9VOMYsu6eKiBUVHJdCLF3b6N5zeD8KryAPk8KkCqJuk6PinD9FryA0AZO9tZNCxhtdYQJEinI79PTSzncxeizaa1VMfbuVEIWELGc4cT2agfgwD2p8Vm3Ap/OkU80x1p6pbs3qreWSXbMOL7pjfcU7uzcuH1ec3dZj+xLIDQNqjHE37546e9HQ0L81T9HrgbOjtJCRkw3oId1rpYGCpYjsKOniFqT0T7fnEWteAeAvqqZ8gYz/dmgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAlCAYAAAAwYKuzAAAACXBIWXMAAAsSAAALEgHS3X78AAADNUlEQVRYhdVXsY4aMRCdRemX+wPEB0RImw9AEamX5lJvRVq6S7kl6Wi5ipo03por9gMSiR9IRJkKvF/gyNwzmXNsn9nlLsqTVgh7/PzsGY/HiVKKfEiqZkREfda9V3m69w4IIKkazTOyLKTK011wnC0QRHMiKoio1qJY9whfqfJ0HSlsDL4B+KTFp9sFES1Vnsq/xnOB2DFjvPRMqBdQgnzqImV2AgssQzufVE2BRSzthZ8FQpwWVcS4kZGObZFsoXOVp+I5LragNdxenDtOAoXsk5B7EnKg/8d+JGRBQtbcnnGNLuFi49ckZHn+zxqLloSChByz/zUJOW3DxTh2hrOHjRzFBr0DJVxtDsQ+1q0BTMFLPZDWbZmQJkz6mBviLsAZ2OtY1juoBQZzUQR2SdW81SmjbZ50QHuhMC7uSqoX+L6LJxzQXKcdlEiWXaBd/MtKwp1gUlcPq7evoEsxgMCro6fytMapaQUcsq4x7IWJwXVSNfOWHKW5Aa7giTNwG0kj8HTFofESkjnyXo100zWWObRnxEkgAlLffyJWJO5icx8bCLRfA496HNXMOlj+VM0AO65RcBtc+LWrgLgE8Exf5WnpLFhZpSJZbutj2/cQ78x5GKvLsFYHj23SaZHPVdRPqmCfKMe4Newvcjcr06am0g4K7IKkakqkr2lkfWmq+II/A15MIP3JkSXCQu9MbcXsCGFT+OL+RQVaQgrXownChPfp8BoCu6AXGDskog0RHXS849t6bG8s2y3GhzCD7W3I6I2nPcMk34noExEdmRAfdN9H/C6IaEVEHwL2dxGcXoEbiAtNwHG0bDMmwCfuGOg/w+XiCdzzJVKcC3pXfgb6tMDPMUSuHczw+9BCVIZvBne7sIB3ovh9Lg4hs+LGTJSxQ/TgETCE+HfRsznepbfqEZnn3bpVT2H3D5VSP2Bn922UUt+UUhN8GguMcb+RHY03SqkDyNo+vheY3G73YeXjcrn4iNSygcvurTTz1TFmBpsjbGbMzqQd/T+xHYi57i9xsfkmljsP2BmX7R3cauxW8AQPGZcbFfq9Ol7jqlsgdcUfDIbQVXctTLrk1P+6WPj3IKLfq3mUyG/nY+sAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Devices-background-blue.dbc1b708.svg\";","module.exports = __webpack_public_path__ + \"img/AXIS Logo for Light Backgrounds - Cropped.9ea34c51.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAYCAYAAAAlBadpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDE3OTE0OEJBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDE3OTE0OENBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTc5MTQ4OUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMTc5MTQ4QUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsMlxWYAAADZSURBVHjaYpxywtqAgYEBhBcwkAiYgFgAiOcDcQI5mmEAZEADuZpBoJ4U5zNhEYsn1gAmHOJEGcCERw5kwAVogJKsGQT0gfgALgOYiPAaTgOYiAxYmAEG5GjGagATiYmKH9kAUjWjGMBCgqaP0KgDgQ9AHECM5oW4Mg0uZ09EYgeQEs+JQFwAxA+R/FhAjOZEpDSNnD0JOjsRLTNsgAYSCMhjM4AJGnKBWHIRSHwCEr8Bm+YLUFuwAWQDQbY7kJI8H0CjCqvtxKQwZNsVSNV8ABrvieiaAQIMAKbjJqjkD9KxAAAAAElFTkSuQmCC\"","var map = {\n\t\"./180-rotate-icon.png\": \"5419\",\n\t\"./AXIS Logo for Dark Backgrounds - Cropped - Grayscale.png\": \"d364\",\n\t\"./AXIS Logo for Dark Backgrounds - Cropped - Green.png\": \"ad3b\",\n\t\"./AXIS Logo for Dark Backgrounds - Grayscale.png\": \"9b59\",\n\t\"./AXIS Logo for Dark Backgrounds - Green.png\": \"215a\",\n\t\"./AXIS Logo for Light Backgrounds - Cropped.png\": \"1509\",\n\t\"./AXIS Logo for Light Backgrounds.png\": \"5634\",\n\t\"./AXIS_Favicon_green.png\": \"0800\",\n\t\"./AXIS_Favicon_green_142x142.png\": \"fcf6\",\n\t\"./AXIS_Favicon_green_16x16.png\": \"2403\",\n\t\"./AXIS_Favicon_green_32x32.png\": \"2ca0\",\n\t\"./AXIS_Favicon_silver_16x16.png\": \"6592\",\n\t\"./Add Patient - Blue - Selected.png\": \"e6a7\",\n\t\"./Add Patient - Blue.png\": \"6abc\",\n\t\"./Add Patient - Gray - Selected.png\": \"da62\",\n\t\"./Add Patient - Gray.png\": \"8136\",\n\t\"./Add Patient - Green - Selected.png\": \"03c2\",\n\t\"./Add Patient - Green.png\": \"d665\",\n\t\"./Add Patient - Pink - Selected.png\": \"88ff\",\n\t\"./Add Patient - Pink.png\": \"b035\",\n\t\"./Advanced Search - Blue - Selected.png\": \"b4de\",\n\t\"./Advanced Search - Blue.png\": \"cfe0\",\n\t\"./Advanced Search - Gray - Selected.png\": \"3c30\",\n\t\"./Advanced Search - Gray.png\": \"fae6\",\n\t\"./Advanced Search - Green - Selected.png\": \"f864\",\n\t\"./Advanced Search - Green.png\": \"f6da\",\n\t\"./Advanced Search - Pink - Selected.png\": \"6021\",\n\t\"./Advanced Search - Pink.png\": \"5f25\",\n\t\"./AppStore.png\": \"afee\",\n\t\"./Best Practices and Tips Bullet Point.png\": \"eab2\",\n\t\"./Blue/Add Patient - Blue - Selected.png\": \"5e18\",\n\t\"./Blue/Add Patient - Blue.png\": \"a6f5\",\n\t\"./Blue/AdvanceBlue&Black.png\": \"777c\",\n\t\"./Blue/Advanced Search - Blue - Selected.png\": \"7d83\",\n\t\"./Blue/Advanced Search - Blue.png\": \"9529\",\n\t\"./Blue/Calendar - Blue - Selected.png\": \"9cd6\",\n\t\"./Blue/Calendar_-_Blue.png\": \"38af\",\n\t\"./Blue/Close - Blue - Selected.png\": \"eed5\",\n\t\"./Blue/Close - Blue.png\": \"ed26\",\n\t\"./Blue/Configure-background-blue.svg\": \"7035\",\n\t\"./Blue/Delete_Blue.png\": \"63e5\",\n\t\"./Blue/Devices-background-blue.svg\": \"1440\",\n\t\"./Blue/Diagnosis - Blue.png\": \"915b\",\n\t\"./Blue/Download - Blue - Selected.png\": \"0906\",\n\t\"./Blue/Download - Blue.png\": \"71f7\",\n\t\"./Blue/Drop Down Menu - Blue - Selected.png\": \"1d0d\",\n\t\"./Blue/Drop Down Menu - Blue.png\": \"dfb7\",\n\t\"./Blue/Edit Patient - Blue - Selected.png\": \"c3bb\",\n\t\"./Blue/Edit Patient - Blue.png\": \"e4f4\",\n\t\"./Blue/Exams-background-blue.svg\": \"aa47\",\n\t\"./Blue/Expand_Icon_April_2022_blue.png\": \"36d5\",\n\t\"./Blue/Manual Exam Upload - Blue - Selected.png\": \"cf65\",\n\t\"./Blue/Manual Exam Upload - Blue.png\": \"095e\",\n\t\"./Blue/Microphone - Blue - Selected.png\": \"326b\",\n\t\"./Blue/Microphone - Blue.png\": \"5068\",\n\t\"./Blue/Minimize_Icon_April_2022_blue.png\": \"b4c9\",\n\t\"./Blue/Multiview - Blue - Selected.png\": \"b8cb\",\n\t\"./Blue/Multiview - Blue.png\": \"51c9\",\n\t\"./Blue/Physician - Blue - Selected.png\": \"5b15\",\n\t\"./Blue/Physician - Blue.png\": \"37b4\",\n\t\"./Blue/Physicians-background-blue.svg\": \"6e5c\",\n\t\"./Blue/Proofsheet - Blue - Selected.png\": \"db47\",\n\t\"./Blue/Proofsheet - Blue.png\": \"eaed\",\n\t\"./Blue/Refresh - Blue - Selected.png\": \"b7c4\",\n\t\"./Blue/Refresh - Blue.png\": \"8ddf\",\n\t\"./Blue/Submit_-_Blue.png\": \"7c59\",\n\t\"./Blue/Teaching-Research Case - Blue - Selected.png\": \"c317\",\n\t\"./Blue/Teaching-Research Case - Blue.png\": \"5234\",\n\t\"./Blue/Users-background-blue.svg\": \"25c8\",\n\t\"./Blue/ZoomBlue&Black.png\": \"7b6e\",\n\t\"./Blue/blue-180-rotate-icon.png\": \"84e0\",\n\t\"./Blue/blue-90rotate-icon-01.svg\": \"2ae4\",\n\t\"./Blue/blue-90rotate-icon.png\": \"b889\",\n\t\"./Blue/blue-Return to Single View - Icon.jpg\": \"c59b\",\n\t\"./Blue/blue-Submit.png\": \"6327\",\n\t\"./Blue/blue-arrow-line-icon.png\": \"a956\",\n\t\"./Blue/blue-big-icon.png\": \"04f8\",\n\t\"./Blue/blue-compass-icon.png\": \"7c09\",\n\t\"./Blue/blue-contDrawing-icon.png\": \"2fdd\",\n\t\"./Blue/blue-crop-icon.png\": \"75ae\",\n\t\"./Blue/blue-cursor-icon.png\": \"8856\",\n\t\"./Blue/blue-erase-annotations-icon.png\": \"f388\",\n\t\"./Blue/blue-hand-icon.png\": \"001d\",\n\t\"./Blue/blue-measurements-PDT-icon.png\": \"1216\",\n\t\"./Blue/blue-measurements-area-icon.png\": \"86cf\",\n\t\"./Blue/blue-measurements-cupdisc-icon.png\": \"ebbc\",\n\t\"./Blue/blue-measurements-drusen1-icon.png\": \"3712\",\n\t\"./Blue/blue-measurements-drusen2-icon.png\": \"0193\",\n\t\"./Blue/blue-measurements-drusen3-icon.png\": \"d052\",\n\t\"./Blue/blue-measurements-drusenHalf-icon.png\": \"05dd\",\n\t\"./Blue/blue-measurements-etdrsGrid-icon.png\": \"7873\",\n\t\"./Blue/blue-measurements-freehandArea-icon.png\": \"fa68\",\n\t\"./Blue/blue-measurements-line-icon.png\": \"dbd4\",\n\t\"./Blue/blue-measurements-standardCircles-icon.png\": \"789d\",\n\t\"./Blue/blue-measurements-standardCircles34-icon.png\": \"0103\",\n\t\"./Blue/blue-multiImage-icon.png\": \"9655\",\n\t\"./Blue/blue-outlinebox-icon.png\": \"0e0a\",\n\t\"./Blue/blue-overlay-icon.png\": \"bb5d\",\n\t\"./Blue/blue-pencil-icon.png\": \"edb2\",\n\t\"./Blue/blue-pencil-ruler-icon.png\": \"cc9e\",\n\t\"./Blue/blue-print-icon.png\": \"c92a\",\n\t\"./Blue/blue-redacted-icon.png\": \"7329\",\n\t\"./Blue/blue-reset-icon.png\": \"524c\",\n\t\"./Blue/blue-save-icon.png\": \"9dc0\",\n\t\"./Blue/blue-sideBySide-icon.png\": \"5b91\",\n\t\"./Blue/blue-small-icon.png\": \"4de4\",\n\t\"./Blue/blue-squareArea-icon.png\": \"d4ef\",\n\t\"./Blue/blue-squiggly-icon.png\": \"6061\",\n\t\"./Blue/blue-stereo-icon.png\": \"d0a2\",\n\t\"./Blue/blue-trash-icon.png\": \"0055\",\n\t\"./Blue/blue-type-icon.png\": \"1133\",\n\t\"./Blue/blue-zoom-icon.png\": \"fbb6\",\n\t\"./Blue/calendar-blue.svg\": \"17d6\",\n\t\"./Blue/downloadCircle-icon-blue.svg\": \"7cd2\",\n\t\"./Blue/highlighter-icon-blue.png\": \"52ec\",\n\t\"./Blue/markImages-Icon-blue.svg\": \"7eab\",\n\t\"./Blue/montage-icon-blue.svg\": \"7d96\",\n\t\"./Blue/printbutton-blue.svg\": \"18e6\",\n\t\"./Blue/registerreturn-icon-blue.svg\": \"e4a4\",\n\t\"./Blue/removeimages-blue.svg\": \"4f73\",\n\t\"./Blue/reports-icon-blue.svg\": \"2321\",\n\t\"./Blue/requestsupport-blue.svg\": \"c25f\",\n\t\"./Blue/returnToAdmin-icon-blue.svg\": \"a6e9\",\n\t\"./Blue/shapeFill_blue.png\": \"48b1\",\n\t\"./Blue/shapeOutline_blue.png\": \"9bfd\",\n\t\"./CSV-icon.svg\": \"5205\",\n\t\"./Calendar - Blue - Selected.png\": \"6642\",\n\t\"./Calendar_-_Blue.png\": \"234e\",\n\t\"./Close - Blue - Selected.png\": \"d862\",\n\t\"./Close - Blue.png\": \"4a25\",\n\t\"./Close - Gray - Selected.png\": \"1803\",\n\t\"./Close - Gray.png\": \"23cf\",\n\t\"./Close - Green - Selected.png\": \"7ae0\",\n\t\"./Close - Green.png\": \"5d3b\",\n\t\"./Close - Pink - Selected.png\": \"9162\",\n\t\"./Close - Pink.png\": \"b97a\",\n\t\"./Configure-background.svg\": \"1c3f\",\n\t\"./Delete - Dark Gray - Selected.png\": \"65e6\",\n\t\"./Delete - Dark Gray.png\": \"cf71\",\n\t\"./Delete - Green - Selected.png\": \"e6d3\",\n\t\"./Delete - Green.png\": \"58e6\",\n\t\"./Delete - Light Gray - Selected.png\": \"77b6\",\n\t\"./Delete - Light Gray.png\": \"e08a\",\n\t\"./Delete - Medium Gray - Selected.png\": \"ccaa\",\n\t\"./Delete - Medium Gray.png\": \"ed93\",\n\t\"./Delete - Pink - Selected.png\": \"11bf\",\n\t\"./Delete - Pink.png\": \"47e1\",\n\t\"./Delete - White - Selected.png\": \"5943\",\n\t\"./Delete - White.png\": \"0c39\",\n\t\"./Delete_Blue.png\": \"ec39\",\n\t\"./Devices-background.svg\": \"6b98\",\n\t\"./Diagnosis - Blue - Selected.png\": \"d7c2\",\n\t\"./Diagnosis - Blue.png\": \"dc20\",\n\t\"./Diagnosis - Dark Gray - Selected.png\": \"b79f\",\n\t\"./Diagnosis - Dark Gray.png\": \"a102\",\n\t\"./Diagnosis - Green - Selected.png\": \"a0d5\",\n\t\"./Diagnosis - Green.png\": \"6e77\",\n\t\"./Diagnosis - Light Gray - Selected.png\": \"87d9\",\n\t\"./Diagnosis - Light Gray.png\": \"c791\",\n\t\"./Diagnosis - Medium Gray - Selected.png\": \"00a7\",\n\t\"./Diagnosis - Medium Gray.png\": \"9908\",\n\t\"./Diagnosis - Pink - Selected.png\": \"3099\",\n\t\"./Diagnosis - Pink.png\": \"6cd7\",\n\t\"./Diagnosis - White - Selected.png\": \"7a4b\",\n\t\"./Diagnosis - White.png\": \"1fd0\",\n\t\"./Download - Blue - Selected.png\": \"3a7f\",\n\t\"./Download - Blue.png\": \"bee2\",\n\t\"./Download - Dark Gray - Selected.png\": \"ecda\",\n\t\"./Download - Dark Gray.png\": \"819f\",\n\t\"./Download - Green - Selected.png\": \"da21\",\n\t\"./Download - Green.png\": \"ac0e\",\n\t\"./Download - Light Gray - Selected.png\": \"26c5\",\n\t\"./Download - Light Gray.png\": \"810c\",\n\t\"./Download - Medium Gray - Selected.png\": \"d2d8\",\n\t\"./Download - Medium Gray.png\": \"4591\",\n\t\"./Download - Pink - Selected.png\": \"5960\",\n\t\"./Download - Pink.png\": \"3227\",\n\t\"./Download - White - Selected.png\": \"6570\",\n\t\"./Download - White.png\": \"366d\",\n\t\"./Drop Down Menu - Blue - Selected.png\": \"b315\",\n\t\"./Drop Down Menu - Blue.png\": \"00cf\",\n\t\"./Drop Down Menu - Gray - Selected.png\": \"3bc1\",\n\t\"./Drop Down Menu - Gray.png\": \"2c9d\",\n\t\"./Drop Down Menu - Green - Selected.png\": \"1f2e\",\n\t\"./Drop Down Menu - Green.png\": \"097c\",\n\t\"./Drop Down Menu - Pink - Selected.png\": \"8b975\",\n\t\"./Drop Down Menu - Pink.png\": \"4044\",\n\t\"./Edit Patient - Blue - Selected.png\": \"a67b\",\n\t\"./Edit Patient - Blue.png\": \"ba9b\",\n\t\"./Edit Patient - Gray - Selected.png\": \"421e\",\n\t\"./Edit Patient - Gray.png\": \"8b56\",\n\t\"./Edit Patient - Green - Selected.png\": \"3e0e\",\n\t\"./Edit Patient - Green.png\": \"7fe7\",\n\t\"./Edit Patient - Pink - Selected.png\": \"4855\",\n\t\"./Edit Patient - Pink.png\": \"ab42\",\n\t\"./Exams-background.svg\": \"4171\",\n\t\"./Exams.svg\": \"8e7d\",\n\t\"./GooglePlay.png\": \"059a\",\n\t\"./Gray/Add Patient - Gray - Selected.png\": \"6607\",\n\t\"./Gray/Add Patient - Gray.png\": \"caf8\",\n\t\"./Gray/AdvanceGray&Black.png\": \"c12b\",\n\t\"./Gray/AdvanceGray&White.png\": \"2db0\",\n\t\"./Gray/Advanced Search - Gray - Selected.png\": \"2176\",\n\t\"./Gray/Advanced Search - Gray.png\": \"e37e\",\n\t\"./Gray/Close - Gray - Selected.png\": \"bf41\",\n\t\"./Gray/Close - Gray.png\": \"3c65\",\n\t\"./Gray/Configure-background-gray.svg\": \"e82a\",\n\t\"./Gray/Delete - Medium Gray - Selected.png\": \"9ff5\",\n\t\"./Gray/Delete - Medium Gray.png\": \"2c8a\",\n\t\"./Gray/Devices-background-gray.svg\": \"eedd\",\n\t\"./Gray/Diagnosis - Gray.png\": \"40ab\",\n\t\"./Gray/Diagnosis - Medium Gray - Selected.png\": \"1b8d\",\n\t\"./Gray/Download - Gray.png\": \"d266\",\n\t\"./Gray/Download - Light Gray - Selected.png\": \"0cf7\",\n\t\"./Gray/Download - Medium Gray - Selected.png\": \"bd56\",\n\t\"./Gray/Download - Medium Gray.png\": \"6f84\",\n\t\"./Gray/Drop Down Menu - Gray - Selected.png\": \"f7b4\",\n\t\"./Gray/Drop Down Menu - Gray.png\": \"4ef9\",\n\t\"./Gray/Edit Patient - Gray - Selected.png\": \"4f6d\",\n\t\"./Gray/Edit Patient - Gray.png\": \"fcf8\",\n\t\"./Gray/Exams-background-gray.svg\": \"1d2a\",\n\t\"./Gray/Expand_Icon_April_2022_gray.png\": \"00fa\",\n\t\"./Gray/Manual Exam Upload - Gray - Selected.png\": \"47bb\",\n\t\"./Gray/Manual Exam Upload - Gray.png\": \"6752\",\n\t\"./Gray/Microphone - Gray.png\": \"dd03\",\n\t\"./Gray/Minimize_Icon_April_2022_gray.png\": \"133f\",\n\t\"./Gray/Multiview - Gray - Selected.png\": \"393f\",\n\t\"./Gray/Multiview - Gray.png\": \"91ef\",\n\t\"./Gray/Physician - Gray.png\": \"8087\",\n\t\"./Gray/Physician - Medium Gray - Selected.png\": \"e874\",\n\t\"./Gray/Physicians-background-gray.svg\": \"b8d9\",\n\t\"./Gray/Proofsheet - Gray - Selected.png\": \"a2b3\",\n\t\"./Gray/Proofsheet - Gray.png\": \"e663\",\n\t\"./Gray/Refresh - Gray - Selected.png\": \"5b1e\",\n\t\"./Gray/Refresh - Gray.png\": \"e3c6\",\n\t\"./Gray/Teaching-Research Case - Gray.png\": \"77a3\",\n\t\"./Gray/Teaching-Research Case - Medium Gray - Selected.png\": \"3031\",\n\t\"./Gray/Users-background-gray.svg\": \"193f\",\n\t\"./Gray/ZoomGray&Black.png\": \"7b9b\",\n\t\"./Gray/ZoomGray&White.png\": \"8457\",\n\t\"./Gray/calendar-gray.svg\": \"fea1\",\n\t\"./Gray/downloadCircle-icon-gray.svg\": \"a5e9\",\n\t\"./Gray/gray-180-rotate-icon-clockwise.png\": \"fa60\",\n\t\"./Gray/gray-180-rotate-icon.png\": \"86d1\",\n\t\"./Gray/gray-90rotate-icon-01.svg\": \"f61e\",\n\t\"./Gray/gray-90rotate-icon-clockwise.png\": \"e5a9\",\n\t\"./Gray/gray-90rotate-icon.png\": \"9f3f\",\n\t\"./Gray/gray-90rotate-icon.svg\": \"395a\",\n\t\"./Gray/gray-Return to Single View - Icon.png\": \"de8b\",\n\t\"./Gray/gray-Submit.png\": \"c342\",\n\t\"./Gray/gray-arrow-line-icon.png\": \"d475\",\n\t\"./Gray/gray-big-icon.png\": \"e0f4\",\n\t\"./Gray/gray-compass-icon.png\": \"c441\",\n\t\"./Gray/gray-contDrawing-icon.png\": \"6e9b\",\n\t\"./Gray/gray-crop-icon.png\": \"3241\",\n\t\"./Gray/gray-cursor-icon.png\": \"be91\",\n\t\"./Gray/gray-erase-annotations-icon.png\": \"7da5\",\n\t\"./Gray/gray-hand-icon.png\": \"5ff6\",\n\t\"./Gray/gray-measurements-PDT-icon.png\": \"aca2\",\n\t\"./Gray/gray-measurements-area-icon.png\": \"bd29\",\n\t\"./Gray/gray-measurements-cupdisc-icon.png\": \"93cf\",\n\t\"./Gray/gray-measurements-drusen1-icon.png\": \"9691\",\n\t\"./Gray/gray-measurements-drusen2-icon.png\": \"aa46\",\n\t\"./Gray/gray-measurements-drusen3-icon.png\": \"d467\",\n\t\"./Gray/gray-measurements-drusenHalf-icon.png\": \"08d8\",\n\t\"./Gray/gray-measurements-etdrsGrid-icon.png\": \"7c91\",\n\t\"./Gray/gray-measurements-freehandArea-icon.png\": \"3d05\",\n\t\"./Gray/gray-measurements-line-icon.png\": \"f673\",\n\t\"./Gray/gray-measurements-standardCircles-icon.png\": \"7ee4\",\n\t\"./Gray/gray-measurements-standardCircles34-icon.png\": \"2196\",\n\t\"./Gray/gray-multiImage-icon.png\": \"4494\",\n\t\"./Gray/gray-outlinebox-icon.png\": \"9e3a\",\n\t\"./Gray/gray-overlay-icon.png\": \"7e09\",\n\t\"./Gray/gray-pencil-icon.png\": \"daf3\",\n\t\"./Gray/gray-pencil-ruler-icon.png\": \"8270\",\n\t\"./Gray/gray-print-icon.png\": \"4698\",\n\t\"./Gray/gray-redacted-icon.png\": \"f730\",\n\t\"./Gray/gray-reset-icon.png\": \"5608\",\n\t\"./Gray/gray-save-icon.png\": \"5d9e\",\n\t\"./Gray/gray-sideBySide-icon.png\": \"3293\",\n\t\"./Gray/gray-small-icon.png\": \"38a3\",\n\t\"./Gray/gray-squareArea-icon.png\": \"62d7\",\n\t\"./Gray/gray-squiggly-icon.png\": \"e294\",\n\t\"./Gray/gray-stereo-icon.png\": \"a3c5\",\n\t\"./Gray/gray-trash-icon.png\": \"abce\",\n\t\"./Gray/gray-type-icon.png\": \"a8f3\",\n\t\"./Gray/gray-zoom-icon.png\": \"85b7\",\n\t\"./Gray/highlighter-icon-gray.png\": \"db24\",\n\t\"./Gray/markImages-Icon-gray.svg\": \"0a98\",\n\t\"./Gray/montage-icon-gray.svg\": \"2684\",\n\t\"./Gray/printbutton-gray.svg\": \"a48a\",\n\t\"./Gray/registerreturn-icon-gray.svg\": \"feae\",\n\t\"./Gray/removeimages-gray.svg\": \"e1e4\",\n\t\"./Gray/reports-icon-gray.svg\": \"2cb3\",\n\t\"./Gray/requestsupport-gray.svg\": \"0ccd\",\n\t\"./Gray/returnToAdmin-icon-gray.svg\": \"e572\",\n\t\"./Gray/shapeFill_gray.png\": \"6d93\",\n\t\"./Gray/shapeOutline_gray.png\": \"e820\",\n\t\"./Green/Add Patient - Green - Selected.png\": \"1125\",\n\t\"./Green/Add Patient - Green.png\": \"2f3f\",\n\t\"./Green/AdvanceGreen&Black.png\": \"0ff6\",\n\t\"./Green/AdvanceGreen&White.png\": \"b214\",\n\t\"./Green/Advanced Search - Green - Selected.png\": \"120f\",\n\t\"./Green/Advanced Search - Green.png\": \"6c18\",\n\t\"./Green/Close - Green - Selected.png\": \"f244\",\n\t\"./Green/Close - Green.png\": \"4a4f\",\n\t\"./Green/Configure-background-green.svg\": \"d0e9\",\n\t\"./Green/Delete - Green - Selected.png\": \"eeef\",\n\t\"./Green/Delete - Green.png\": \"1b58\",\n\t\"./Green/Devices-background-green.svg\": \"03bf\",\n\t\"./Green/Diagnosis - Green - Selected.png\": \"9dc5\",\n\t\"./Green/Diagnosis - Green.png\": \"f441\",\n\t\"./Green/Download - Green - Selected.png\": \"285e\",\n\t\"./Green/Download - Green.png\": \"26d6\",\n\t\"./Green/Drop Down Menu - Green - Selected.png\": \"834c\",\n\t\"./Green/Drop Down Menu - Green.png\": \"49ae\",\n\t\"./Green/Edit Patient - Green - Selected.png\": \"a43e\",\n\t\"./Green/Edit Patient - Green.png\": \"d82c\",\n\t\"./Green/Exams-background-green.svg\": \"3cb9\",\n\t\"./Green/Expand_Icon_April_2022_green.png\": \"6d56\",\n\t\"./Green/Manual Exam Upload - Green.png\": \"00b8\",\n\t\"./Green/Microphone - Green - Selected.png\": \"c2c2\",\n\t\"./Green/Microphone - Green.png\": \"4d62\",\n\t\"./Green/Microphone-green.png\": \"fa32\",\n\t\"./Green/Minimize_Icon_April_2022_green.png\": \"e4b4\",\n\t\"./Green/Multiview - Green - Selected.png\": \"4d9e\",\n\t\"./Green/Multiview - Green.png\": \"7752\",\n\t\"./Green/Physician - Green - Selected.png\": \"7537\",\n\t\"./Green/Physician - Green.png\": \"dde6\",\n\t\"./Green/Physicians-background-green.svg\": \"a265\",\n\t\"./Green/Proofsheet - Green - Selected.png\": \"d293\",\n\t\"./Green/Proofsheet - Green.png\": \"3567\",\n\t\"./Green/Refresh - Green - Selected.png\": \"936a\",\n\t\"./Green/Refresh - Green.png\": \"cd17\",\n\t\"./Green/Teaching-Research Case - Green - Selected.png\": \"bde0\",\n\t\"./Green/Teaching-Research Case - Green.png\": \"c813\",\n\t\"./Green/Users-background-green.svg\": \"bb41\",\n\t\"./Green/ZoomGreen&Black.png\": \"582f\",\n\t\"./Green/ZoomGreen&White.png\": \"a9ca\",\n\t\"./Green/calendar-green.svg\": \"19b9\",\n\t\"./Green/downloadCircle-icon-green.svg\": \"d529\",\n\t\"./Green/green-180-rotate-icon.png\": \"f7b0\",\n\t\"./Green/green-90rotate-icon.png\": \"2a2d\",\n\t\"./Green/green-90rotate-icon.svg\": \"5368\",\n\t\"./Green/green-Return to Single View - Icon.png\": \"40e0\",\n\t\"./Green/green-Submit.png\": \"c0b0\",\n\t\"./Green/green-arrow-line-icon.png\": \"3d31\",\n\t\"./Green/green-big-icon.png\": \"3b01\",\n\t\"./Green/green-compass-icon.png\": \"4800\",\n\t\"./Green/green-contDrawing-icon.png\": \"ddbd\",\n\t\"./Green/green-crop-icon.png\": \"a3d1\",\n\t\"./Green/green-cursor-icon.png\": \"16b5\",\n\t\"./Green/green-erase-annotations-icon.png\": \"c1ac\",\n\t\"./Green/green-hand-icon.png\": \"29d6\",\n\t\"./Green/green-measurements-PDT-icon.png\": \"2bf6\",\n\t\"./Green/green-measurements-area-icon.png\": \"46ff\",\n\t\"./Green/green-measurements-cupdisc-icon.png\": \"7e26\",\n\t\"./Green/green-measurements-drusen1-icon.png\": \"fe3a\",\n\t\"./Green/green-measurements-drusen2-icon.png\": \"ea0b\",\n\t\"./Green/green-measurements-drusen3-icon.png\": \"d13a\",\n\t\"./Green/green-measurements-drusenHalf-icon.png\": \"9863\",\n\t\"./Green/green-measurements-etdrsGrid-icon.png\": \"53eb\",\n\t\"./Green/green-measurements-freehandArea-icon.png\": \"6d66\",\n\t\"./Green/green-measurements-line-icon.png\": \"b6ee\",\n\t\"./Green/green-measurements-standardCircles-icon.png\": \"d423\",\n\t\"./Green/green-measurements-standardCircles34-icon.png\": \"2d05\",\n\t\"./Green/green-multiImage-icon.png\": \"4876\",\n\t\"./Green/green-outlinebox-icon.png\": \"8456\",\n\t\"./Green/green-overlay-icon.png\": \"7466\",\n\t\"./Green/green-pencil-icon.png\": \"fc98\",\n\t\"./Green/green-pencil-ruler-icon.png\": \"0b8f\",\n\t\"./Green/green-print-icon.png\": \"9696\",\n\t\"./Green/green-redacted-icon.png\": \"8d7f\",\n\t\"./Green/green-reset-icon.png\": \"900a\",\n\t\"./Green/green-save-icon.png\": \"197c\",\n\t\"./Green/green-sideBySide-icon.png\": \"67ed\",\n\t\"./Green/green-small-icon.png\": \"d103\",\n\t\"./Green/green-squareArea-icon.png\": \"4da5\",\n\t\"./Green/green-squiggly-icon.png\": \"2ed4\",\n\t\"./Green/green-stereo-icon.png\": \"1902\",\n\t\"./Green/green-trash-icon.png\": \"11ba\",\n\t\"./Green/green-type-icon.png\": \"cb51\",\n\t\"./Green/green-zoom-icon.png\": \"bd8f\",\n\t\"./Green/highlighter-icon-green.png\": \"8092\",\n\t\"./Green/markImages-Icon-green.svg\": \"fe22\",\n\t\"./Green/montage-icon-green.svg\": \"6e4e\",\n\t\"./Green/printbutton-green.svg\": \"c145\",\n\t\"./Green/registerreturn-icon-green.svg\": \"6f3d\",\n\t\"./Green/removeimages-green.svg\": \"b983\",\n\t\"./Green/reports-icon-green.svg\": \"1eb8\",\n\t\"./Green/requestsupport-green.svg\": \"a578\",\n\t\"./Green/returnToAdmin-icon-green.svg\": \"c4c2\",\n\t\"./Green/shapeFill_green.png\": \"dee4\",\n\t\"./Green/shapeOutline_green.png\": \"0ffc\",\n\t\"./INF.png\": \"724d\",\n\t\"./Images-background.svg\": \"5f61\",\n\t\"./LaunchExample.png\": \"9e4e\",\n\t\"./Manual Exam Upload - Blue - Selected.png\": \"22c1\",\n\t\"./Manual Exam Upload - Blue.png\": \"f439\",\n\t\"./Manual Exam Upload - Gray - Selected.png\": \"5e43\",\n\t\"./Manual Exam Upload - Gray.png\": \"017b\",\n\t\"./Manual Exam Upload - Green - Selected.png\": \"a0b4\",\n\t\"./Manual Exam Upload - Green.png\": \"21d2\",\n\t\"./Manual Exam Upload - Pink - Selected.png\": \"f36f\",\n\t\"./Manual Exam Upload - Pink.png\": \"efcb\",\n\t\"./Microphone - Blue - Selected.png\": \"39d1\",\n\t\"./Microphone - Blue.png\": \"886c\",\n\t\"./Microphone - Green - Selected.png\": \"81c9\",\n\t\"./Microphone - Green.png\": \"c4cc\",\n\t\"./Microphone - Pink - Selected.png\": \"a0ac\",\n\t\"./Microphone - Pink.png\": \"abb8\",\n\t\"./Microphone - White - Selected.png\": \"ce08\",\n\t\"./Microphone - White.png\": \"cb2e\",\n\t\"./Multiview - Blue - Selected.png\": \"f051\",\n\t\"./Multiview - Blue.png\": \"3efb\",\n\t\"./Multiview - Gray - Selected.png\": \"70c1\",\n\t\"./Multiview - Gray.png\": \"bbb4\",\n\t\"./Multiview - Green - Selected.png\": \"e927\",\n\t\"./Multiview - Green.png\": \"81ac\",\n\t\"./Multiview - Icon.png\": \"be96\",\n\t\"./Multiview - Pink - Selected.png\": \"da59\",\n\t\"./Multiview - Pink.png\": \"e588\",\n\t\"./PDF-icon.svg\": \"8ccc\",\n\t\"./Patients-background.svg\": \"c2a8\",\n\t\"./Physician - Blue - Selected.png\": \"2290\",\n\t\"./Physician - Blue.png\": \"e228\",\n\t\"./Physician - Drak Gray - Selected.png\": \"07c3\",\n\t\"./Physician - Drak Gray.png\": \"c771\",\n\t\"./Physician - Green - Selected.png\": \"cbc0\",\n\t\"./Physician - Green.png\": \"0d21\",\n\t\"./Physician - Light Gray - Selected.png\": \"e8b9\",\n\t\"./Physician - Light Gray.png\": \"d1b8\",\n\t\"./Physician - Medium Gray - Selected.png\": \"93b3\",\n\t\"./Physician - Medium Gray.png\": \"6ff8\",\n\t\"./Physician - Pink - Selected.png\": \"25bb\",\n\t\"./Physician - Pink.png\": \"2995\",\n\t\"./Physician - White - Selected.png\": \"73e1\",\n\t\"./Physician - White.png\": \"dac6\",\n\t\"./Physicians-background.svg\": \"25f7\",\n\t\"./Proofsheet - Blue - Selected.png\": \"cab5\",\n\t\"./Proofsheet - Blue.png\": \"7006\",\n\t\"./Proofsheet - Gray - Selected.png\": \"0199\",\n\t\"./Proofsheet - Gray.png\": \"e1bd\",\n\t\"./Proofsheet - Green - Selected.png\": \"27cc\",\n\t\"./Proofsheet - Green.png\": \"be46\",\n\t\"./Proofsheet - Pink - Selected.png\": \"390b\",\n\t\"./Proofsheet - Pink.png\": \"b11f\",\n\t\"./Refresh - Blue - Selected.png\": \"7414\",\n\t\"./Refresh - Blue.png\": \"60a3\",\n\t\"./Refresh - Gray - Selected.png\": \"9ad8\",\n\t\"./Refresh - Gray.png\": \"9e70\",\n\t\"./Refresh - Green - Selected.png\": \"403a\",\n\t\"./Refresh - Green.png\": \"36df\",\n\t\"./Refresh - Pink - Selected.png\": \"49e5\",\n\t\"./Refresh - Pink.png\": \"3406\",\n\t\"./Return to Single View - Icon.jpg\": \"dbd3\",\n\t\"./Sonomed Escalon Logo for Dark Backgrounds.png\": \"2318\",\n\t\"./Sonomed Escalon Logo for Light Backgrounds.png\": \"eeb5\",\n\t\"./Teaching Case Icon.png\": \"1c16\",\n\t\"./Teaching-Research Case - Blue - Selected.png\": \"97c2\",\n\t\"./Teaching-Research Case - Blue.png\": \"eacf\",\n\t\"./Teaching-Research Case - Dark Gray - Selected.png\": \"2c8f\",\n\t\"./Teaching-Research Case - Dark Gray.png\": \"a90c\",\n\t\"./Teaching-Research Case - Green - Selected.png\": \"3a48\",\n\t\"./Teaching-Research Case - Green.png\": \"04db\",\n\t\"./Teaching-Research Case - Light Gray - Selected.png\": \"886f\",\n\t\"./Teaching-Research Case - Light Gray.png\": \"46dd\",\n\t\"./Teaching-Research Case - Medium Gray - Selected.png\": \"923d\",\n\t\"./Teaching-Research Case - Medium Gray.png\": \"474c\",\n\t\"./Teaching-Research Case - Pink - Selected.png\": \"79a4\",\n\t\"./Teaching-Research Case - Pink.png\": \"7ce0\",\n\t\"./Teaching-Research Case - White - Selected.png\": \"1be3\",\n\t\"./Teaching-Research Case - White.png\": \"619f\",\n\t\"./Trash.png\": \"7419\",\n\t\"./Users-background.svg\": \"bf10\",\n\t\"./Users.svg\": \"c828\",\n\t\"./White Icons/AdvanceWhite&Black.png\": \"e1e9\",\n\t\"./White Icons/Expand_Icon_April_2022_white.png\": \"3e07\",\n\t\"./White Icons/Minimize_Icon_April_2022_white.png\": \"b96b\",\n\t\"./White Icons/ZoomWhite&Black.png\": \"646b\",\n\t\"./White Icons/annotate-white-icon.png\": \"113f\",\n\t\"./White Icons/arrow-white-icon.png\": \"7e86\",\n\t\"./White Icons/arrow-whiteIcon.png\": \"6c185\",\n\t\"./White Icons/compass-white-icon.png\": \"a18f\",\n\t\"./White Icons/delete-white-icon.png\": \"fa84\",\n\t\"./White Icons/download-whiteIcon.png\": \"d516\",\n\t\"./White Icons/erase-annotations-icon.png\": \"5d38\",\n\t\"./White Icons/frame-white-icon.png\": \"fc7e\",\n\t\"./White Icons/freedraw-white-icon.png\": \"f174\",\n\t\"./White Icons/hand-white-icon.png\": \"846b\",\n\t\"./White Icons/highlighter-icon-white.png\": \"8db7\",\n\t\"./White Icons/magnify-white-icon.png\": \"a93b\",\n\t\"./White Icons/measurements-PDT-icon.png\": \"2828\",\n\t\"./White Icons/measurements-area-icon.png\": \"8e51\",\n\t\"./White Icons/measurements-cupdisc-icon.png\": \"a729\",\n\t\"./White Icons/measurements-drusen1-icon.png\": \"3772\",\n\t\"./White Icons/measurements-drusen2-icon.png\": \"c590\",\n\t\"./White Icons/measurements-drusen3-icon.png\": \"3774\",\n\t\"./White Icons/measurements-drusenHalf-icon.png\": \"b9ca\",\n\t\"./White Icons/measurements-etdrsGrid-icon.png\": \"29b2\",\n\t\"./White Icons/measurements-freehandArea-icon.png\": \"97a6\",\n\t\"./White Icons/measurements-line-icon.png\": \"770e\",\n\t\"./White Icons/measurements-standardCircles-icon.png\": \"e395\",\n\t\"./White Icons/measurements-standardCircles34-icon.png\": \"5f6c\",\n\t\"./White Icons/outlinebox-white-icon.png\": \"29e1\",\n\t\"./White Icons/print-white-icon.png\": \"a8ff\",\n\t\"./White Icons/redact-white-icon.png\": \"ee7e\",\n\t\"./White Icons/reset-whiteIcon.png\": \"3070\",\n\t\"./White Icons/rgb-white-icon.png\": \"d2c86\",\n\t\"./White Icons/rotate-white-icon.png\": \"aa99\",\n\t\"./White Icons/save-white-icon.png\": \"dbd8\",\n\t\"./White Icons/shapeFill_white.png\": \"b99f\",\n\t\"./White Icons/shapeOutline_white.png\": \"2516\",\n\t\"./White Icons/test-white-icon.png\": \"bc61\",\n\t\"./White Icons/white-90-rotate-clockwise-icon(1).png\": \"5620\",\n\t\"./White Icons/white-90rotate-icon.svg\": \"092c\",\n\t\"./White Icons/white-big-icon.png\": \"8c6b\",\n\t\"./White Icons/white-bulb-icon.png\": \"e0d3\",\n\t\"./White Icons/white-contDrawing-icon.png\": \"e154\",\n\t\"./White Icons/white-pencil-icon.png\": \"f44d\",\n\t\"./White Icons/white-small-icon.png\": \"4511\",\n\t\"./White Icons/white-squareArea-icon.png\": \"af85\",\n\t\"./appStoreDark.png\": \"8af2\",\n\t\"./arrow-line-icon.png\": \"22ca\",\n\t\"./blue-90rotate-icon.png\": \"b34a\",\n\t\"./blue-90rotate-icon.svg\": \"3235\",\n\t\"./blue-big-icon.png\": \"ff74\",\n\t\"./blue-contDrawing-icon.png\": \"bda9\",\n\t\"./blue-drop-icon.png\": \"9a54\",\n\t\"./blue-icon.png\": \"d19e\",\n\t\"./blue-normal-icon.png\": \"4ccf\",\n\t\"./blue-pencil-icon.png\": \"b68f\",\n\t\"./blue-small-icon.png\": \"3bdf\",\n\t\"./blue-squareArea-icon.png\": \"364a\",\n\t\"./bw-circle-icon.png\": \"40d8\",\n\t\"./compass-icon.png\": \"72c9\",\n\t\"./crop-icon.png\": \"cc47\",\n\t\"./cursor-icon.png\": \"a50a\",\n\t\"./download-icon.png\": \"c802\",\n\t\"./downloadCircle-icon.png\": \"d1de\",\n\t\"./editText-icon.png\": \"2171\",\n\t\"./erase-annotations-icon.png\": \"b7e2\",\n\t\"./green-drop-icon.png\": \"85ec\",\n\t\"./green-icon.png\": \"00ca\",\n\t\"./green-normal-icon.png\": \"5657\",\n\t\"./hand-icon.png\": \"1a51\",\n\t\"./helpPDF/AXIS5UserManual.pdf\": \"1fef\",\n\t\"./launch-icon.svg\": \"e5b6\",\n\t\"./markImages-icon.png\": \"3d70\",\n\t\"./measurements-PDT-icon.png\": \"07a2\",\n\t\"./measurements-area-icon.png\": \"84a0\",\n\t\"./measurements-cupdisc-icon.png\": \"9f83\",\n\t\"./measurements-drusen1-icon.png\": \"a8c0\",\n\t\"./measurements-drusen2-icon.png\": \"eaea\",\n\t\"./measurements-drusen3-icon.png\": \"9dca\",\n\t\"./measurements-drusenHalf-icon.png\": \"5fb7\",\n\t\"./measurements-etdrsGrid-icon.png\": \"d563\",\n\t\"./measurements-freehandArea-icon.png\": \"242c\",\n\t\"./measurements-line-icon.png\": \"df9a\",\n\t\"./measurements-standardCircles-icon.png\": \"301b\",\n\t\"./measurements-standardCircles34-icon.png\": \"126f\",\n\t\"./montage-icon.png\": \"0fc4\",\n\t\"./multiImage-icon.png\": \"0d3a\",\n\t\"./overlay-icon.png\": \"4ded\",\n\t\"./pdfIcon.png\": \"1006\",\n\t\"./pencil-ruler-icon.png\": \"487a\",\n\t\"./print-icon.png\": \"cf85\",\n\t\"./printButton-icon.png\": \"df6c\",\n\t\"./proofsheet-buttonIcon.png\": \"a30a\",\n\t\"./red-drop-icon.png\": \"ef3a\",\n\t\"./red-green-circles-icon.png\": \"0755\",\n\t\"./red-icon.png\": \"cc4c\",\n\t\"./red-normal-icon.png\": \"3404\",\n\t\"./redacted-icon.png\": \"1abd\",\n\t\"./registerReturn-icon.png\": \"d7cb\",\n\t\"./removeImages-icon.png\": \"0eea\",\n\t\"./reports-icon.png\": \"96a4\",\n\t\"./requestSupport-icon.png\": \"24039\",\n\t\"./reset-icon.png\": \"3826\",\n\t\"./returnToAdmin-icon.svg\": \"002f\",\n\t\"./returnToSingleView-icon.png\": \"863b\",\n\t\"./rgb-circles-icon.png\": \"7b19\",\n\t\"./rgb-icon.png\": \"0a0e\",\n\t\"./rgb-normal-icon.png\": \"c8024\",\n\t\"./save-icon.png\": \"6327e\",\n\t\"./sideBySide-icon.png\": \"6918\",\n\t\"./squiggly-icon.png\": \"41d5\",\n\t\"./stereo-icon.png\": \"6a5b\",\n\t\"./theme1.png\": \"089c\",\n\t\"./theme2.png\": \"0875\",\n\t\"./theme3.png\": \"2d03\",\n\t\"./trash-icon.png\": \"b43b\",\n\t\"./type-icon.png\": \"b8f9\",\n\t\"./zoom-icon.png\": \"06ef\"\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 = \"1771\";","module.exports = __webpack_public_path__ + \"img/calendar-blue.6915f17a.svg\";","module.exports = __webpack_public_path__ + \"img/Close - Gray - Selected.98b4c309.png\";","module.exports = __webpack_public_path__ + \"img/printbutton-blue.4146ab69.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAAEAElEQVRogd1aTUwTQRR+tIRGwq8BA8GEBn+iGFM4aC9LJOGkF0qMxJP8nEwqsWe9lIseLcFNvFm8eDCaevFmhLCXPVFiFBMMoQejiY1Sf5pgJJi3vF0W2J/ZnVkpfMmybZjOe997897MvJmqzc1NOAyoFslBVqUmAOihp8mm2So+ybgyK1I2t0dkVUKlRwGgHwBiHn8+BwA5fJJxBQn6hm8isiqh8ikfytvhJQBk/HrKMxFZldDyWQDo5FDaCeilUa8eYiZC4x8JDApW3A6TybiSZm3MRITiAF3eGIDCTljE2EvGlTW3hiG3BhQLC/tAAij+VsmQjnAkQiQe/xeV7YEGnHUjY0ukQkjocCVjGSP7GBNuKOBkaxUzezxC2SlXgSSAUn7W6h9WQyvNM0e01J6Ckd4X2jsgDMqqlHAkQpPdbR75XUf7oK7mmPZGRMJ1cPH4uGhKWRo5BnZ7hHkCYkWsfRgudIxDrG1YZLeNtDwyYBAhb1wSTURHpLpOdJcps1fMHklZt3dHR0OvaCVZ0Eir7m0ixMzXGgqDOnF2GqROttDCmOlq7nPsD9swYicRANiTBVihD5lWxiw1cOIuXD593zarDXXLkOh+yCo+JqtSVAgRr4iE67Vf6AZAQmdarxi91IRroaX2pJdeE2Yi/U4t0dUe3O0JQ93TMNB1h6cLTfcQucZxFkdXXz33yPheH2kXRqTGxUAMsrT1F3ok6tYSXd18JGp0fP38DHNw84BRVqdOxK7aYYmGSJs2jlmDmwessnBUhXTXHHBEXXeIBwWHiojrxv4AYA2J5L3oWfy9DN/KK7BUfBU4PVZZybiSr2bxSLH8EcJVW2Xi9Y1f8PTtDXHaOoBRVgn/hJCNW8vc+1vw/N3NQJRFI/3ZKPN0oemvV+PnnPYiaJmggEbiXClotWI9a3mKEx7MF6Zg8csz+PRjwTBSsbzM02XeTMSyMhEEUGmlMCWq51IyrmDFZ2toYZzIqlTwUz1By6KFP3wVk8Ver9zz0jynfzCfWGUA4IEf4QIt7NUgGf2DeWbP6qlMJHAuANNbIObMGdcgQmXIjGhpK9/n4Un+mvYWjB2lqx1rLTpYKfDI0y2//nc7Zf9c/yyaxMzuIzqrU12sTLzxKwEtn1uaMNJrAChZla72rH6J6SSP/ABJIBJM1XjYHmIzQWrjE2N2p75O+5EUneFVCjAubCduWyLkvv4KIYMkRp0asJ7qoiVGRGrmAWNOntDBtNUla4wFMWE6AKeBXhYS4GXPTh320JI/aEzRWSHzqtzXXRQ6S0kHcJ6CmTLt54IN1+0gOv1NUSHZ7+FpgdZ5WZ4bQsIunhGphOmulpW3SrQRWqU39/UmHYfjBh0A/AOU1V8QK4WSMAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Users-background-gray.d1e91961.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Rjg1MDc0QTdBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Rjg1MDc0QThBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzk4RjU0RUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGODUwNzRBNkFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pk3CWYAAAAFeSURBVHjaYvz//z8DPQALiJh60kYQSE0EYh8gFoTKfQLib0SYwQilOaH4DxDPAuIqZP0sUHoCEMciab4DxDpA/JOAJRJALABl3wdiLiB+AMT5QGwBxJ5A/B4kyQRV5IBmwAsiLAGBSUB8HYrVoIZ+hMqZA/EemENgFgmiGfCXyKBnwiKGHOlGQLwVFKQwhbx4FBMTP/j0WgHxDCYcBlA7KcbhsugftZM3LouYaZKPsABOIvVvgiZrEHiDz0xcFhkD8RQgfgvNgPhS4TsonQjESkAsRYpFIPFsesQRA63jCBREndDw/g3l/yciL2HLT9pAnIXLIlAZV03F0MrCFXR/qBha//DF0T9axRETjYseBnoEHV2T9z96WfQHl0VMtA66NzSyiAmd8ZEG1QMjUoHwAcZYA8TlQCwDxCZA/BxLiU1MUYRc4hgg8XtgFtVB2w3JQHyair76AC07OwACDADGuUPNj3xPlAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/calendar-green.a4fcfe48.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAaCAYAAABYQRdDAAAACXBIWXMAAAsSAAALEgHS3X78AAABqklEQVRIia1W7U3DMBQ8o/7HTEA3aJmgMEGbCZoN6AaECSgbtBO4TEBHKBNQNnhMYPSic/SIkuDSnmQlsuzLve+4GCNy4IKMAeg6xsIfh65cZRKWAD4BvAM4uCB+8HyfUipbcM0AfAMQALc88qGqAVSx8Ad7d9RD6KnMYg1gY/YnXPrxaY75Cz5fAbylTePLLwB3VD9xQaIL0rilj3TM547q2jjSZGu2qt4PkVpIxpkb+lhVT7Oi/xdi4SWpBOAvQko0Fl2StEGdUi5IBWAF4JoR71TQsdfp75ELcg/gyew92gMaZRfkwUS6MP4r2zkKKk2bW6bPjoot8d6878y7DVCDK6PA83LVZdIpGCmRC7Vr5lrvsfBrVoa3Ck8iNaYvqbKMhT9LbUqpRLJkdzoLNSkbxbb1gbOVXkJtc6chbant6ky5pNIu04o9cuaCrHLZmC31dNBi+UVKtYnshbMpB+nOGn0zygXZMMXAzl+yerrO6pQItFDzXIYGn3419QG9oJVni0FN1r6hHV/xnPJ7cO6z2ahp8wEX6LzSidoE9z8/E2mpammPZwD4AYaJrnSHtemVAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAACXBIWXMAAAsSAAALEgHS3X78AAAB1klEQVRIid2VMWgTURjHf0+ig4u3dIhTMMkgQoVIhkYIDgkoQuUMlFKkiwFDIHUQqYM4OaRIBB3q0i4uDiKnAVtBBytIB3XpUsQsBRGkHV5L42CHJ8+8gzNI8u6SOPiH4+7e/333e9+7774TSilsJS5eq1FeeGgdEFBMX4rFTytAA3gE1IEcMA5UgUVgQ1XPlKMAfP0GEU8mgBfAOuCv+CPw1pynRaZYJ35iQNDS/GXgHLCsHwpsAS2gBDwDUnz9vD0IKNw7OnU2z8RkKTJIZIrnowSHB3nSPq2IOjRqgK//D/TPiqHzHWUKF0LGHfD03h21u/PDNiBq1V1haX4V+f2nev98f1SgOeAx8BqYAY7T3i2wt9MGZo1/y8xtmJZ2PywoCMkCaeAo8MH474AJ4BtwGBgD3gCFWMhMlk2jzfqDynU2xN2Xl1hvHgFWgavAmgHlTEypk1E8meqJmLp5oB5UtoQn9bwvASetXKdls0rrpio8mTernQ0M622sK9fZ7BcfZutOA/nA/0prEngCDBWktalc57p/IzyZtg0M04KOAfIv44mhgUR5oQLcAJpdlq6y28bvKdutO2m+jTHhyVqXp9uQ9ocCeqUP5To6gz8kPNm/vIFf3SKWl1FDkgYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAHQCAYAAACWQBBDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0xMi0xOFQxNDoxNTo0MS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTc6MDA6MjMtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTc6MDA6MjMtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NGMwZWYzMzAtN2M4Mi04YjRmLThmYWItYThiYjU0ODg1YTIyIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YjgwZGQyOTUtYTZmOS1iNjRjLTkxODctN2VhNGIyMGZkNjA4IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTY0YzcwYWEtNDkzMC05YzQxLTllMTEtZTAyYmYyNmRiMWQ5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNjRjNzBhYS00OTMwLTljNDEtOWUxMS1lMDJiZjI2ZGIxZDkiIHN0RXZ0OndoZW49IjIwMTgtMTItMThUMTQ6MTU6NDEtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmEyMTE3N2U5LWVhYzctNzQ0YS1hY2M5LTgxZmFkZmRmYWVlZiIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNzowMDoyMy0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NGMwZWYzMzAtN2M4Mi04YjRmLThmYWItYThiYjU0ODg1YTIyIiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDE3OjAwOjIzLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg7VS6MAAAbcSURBVHja7dzRTSs7EIBhdhqiFSiEZqAQWoGKzFMiEYG0mzjx2PN9kl9Polnvf0c5Ojfev16eHOfK05x/j/vhHD7xBPu1i4NZ0ZEgcyQumCGCjIiYKYKMaGDGCDIiYeYIMnXDgPkjyNjQ8CwQZAHAc0GQ8dLj+SDIeNk9JwQZLzmeF4KMl9tzQ5DxUuP5Ich4mT1HBBkAQcZW5XkiyHh58VwRZABBxhaF54sgAwgytic8ZwQZQJCxNeF5I8gAgoxtCc8dQQYQZAAEGUCQWYTfET1/BBkAQQYQZPjT5pwPCDJDQ4yZIMiIjhkhyNQODeaFIAMIMtj2zA1BRlTMD0EGQJABBBkAQQYQZAAEGQBBBhBkAAQZQJCZnH9lZo4IMoAgAyDIAIIMgCADCDIAggyAIHNUMwJzRJABBBkAQQYQZAAEGUCQARBkAJIEuTldTpbnxbgZeQ/meY/SBNkLXDtGXmpmur/LBdllBQR6cJAFGFg10NMEWYgBYR4cZCEGhDlBkIUYqB7m4UG2FQN06mHc+OEAdGpjPPoDAUS5X5DFGOAOrYyDf7gYA9ypm/7nQgBJ7A2yzRjgtk25S5DFGOABUY5b/wAA+kQ5xBggR5T9pR5AEmE7BsixJYcYA+SIsp8sAJII2zFAji3ZhgyQcEO2HQMM3JJtyAAJN2QAEgTZzxUA4zQbMkDCDRkAQQbgFGS/HwOM12zIAIk2ZAAEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQABBlAkAEQZABBBkCQAQQZAEEGEGQArgvy2/Pn5jiO44w/NmQAP1kAIMgAggyAIAMIMgCCDCDIAAgygCADIMgAggyAIAMIMgCCDCDIAAgygCAf9/H92hzHcSodGzKADRkAQQYQZAAEGUCQARBkAEEGQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZAEEGEGTOtjsfszInsxJkdr4wK33WzN/fnOrMSpD5dZkrfva1L321z3anEORCl3czJ7MSZUEWY99lxu9mVqIsyGLsBcKdEmRsWL6POYmyIOM/XL4fCDKAINv6fEfcKQQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQTYCAEEGQJABBBkAQQYQZAAEGUCQARBkAEEGQJABBBkAQQYQZAAEGUCQARBkAEEGQJABBBkAQQYQZAAEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQABBlAkAEQZABBBkCQAQQZAEEGEGQABBlAkAEQZABBBkCQAQQZAEEGEGQABBlAkAEQZABBBkCQARBkAEEGQJABBBkAQQYQZAAEGUCQARBkAEEGQJABBBkAQQYQZAAEGUCQARBkAEEGQJABBBkAQQYQZCMAEGQABBlAkAEQZABBBkCQAQQZAEEGEGQABBlAkAEQZABBBkCQAQQZAEEGEGQABBlAkAEQZABBBkCQARBkAEEGQJABBBkAQQYQZAAEGUCQARBkAEEGQJABBBkAQQYQZAAEGUCQARBkAEEGQJABBBkAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZAEEGEGQABBlAkAEQZABBBkCQAQQZAEEGEGQABBlAkAEQZABBBkCQAQQZAEEGEGQABBlAkAEQZABBNgIAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZQJABEGQAQQZAkAEEGQBBBhBkAAQZAEEGEOQSmu+IO4UgAwgyLLlV2foQZKEp9d2aOblTCHLFS+rFcafcKUH2AvkutlF3CkF2aWd5cZrv4U4JMqtf3jbZnFrBz3anEORBL3xb7LNm/v7mVGdWgsyuy32PY1bmZFaCDIAgAwgyAIIMIMgACDKAIAMgyACCDIAgAwgyAIIMIMgACDIAggwgyAAIMoAgAyDIAIIMgCADVA7yZqRAIV2bZ0MGWHRDBkCQAQT5kt+RgQq6t86GDLDwhmxLBmzHNmQAG7ItGbAd25ABbMi2ZMB2bEMGsCHbkgHb8eQbsigDYpwkyAAkCrItGbAdJ9qQRRkQ4yRBFmVAjBMFWZQBMU4UZFEGxDhRkEUZEONEQRZlQIwTBfk0CGEGSvcnEg4GoGRzIumAhBko15kwMECIBVmYAR2ZLMjCDJToRkw8YIEGlurDD1y+u85yfAVvAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Medium Gray - Selected.2f9d2c1d.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - White - Selected.d40bcbb4.png\";","module.exports = __webpack_public_path__ + \"img/Teaching Case Icon.c82347b0.png\";","module.exports = __webpack_public_path__ + \"img/Configure-background.d68c0d6b.svg\";","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Blue - Selected.5ea653bb.png\";","module.exports = __webpack_public_path__ + \"img/Exams-background-gray.84e67ec2.svg\";","module.exports = __webpack_public_path__ + \"img/reports-icon-green.72353234.svg\";","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Green - Selected.4a05149f.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - White.9ebd2a7a.png\";","module.exports = __webpack_public_path__ + \"img/AXIS Logo for Dark Backgrounds - Green.b7e9eef3.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Gray - Selected.17a47fd0.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAlCAYAAAAwYKuzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkY3QTMxRDVBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkY3QTMxRDZBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2RjdBMzFEM0FEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2RjdBMzFENEFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pk16Z2QAAAPmSURBVHjazFjNaxNBFJ/ZJJBWweTgvbRnJfaDSiqYltTzoujV1UN7zS0gCMGDRE97bU/p0eTg2mMbMFDanrT5C9KIFy+aLUgRtFnfW97AdN3Z7FfBB49pdmbe/N7vvTcf5YeHhyxASqCFC8Y5/sgw5xSaIYsnBbIni10ul/tBk7gPQDRUAzVAex5AJdIGaCsksArZmyF7tscefrdATQBreydnfRhzB9NEFRMNWkz3LOgdZ5GDNRXzAIodHR25ZECLIC85rnnAmeSxGcCITQu2CGRBkRp9smNMSgsChevqANIXoPDWiJBjLQJgKZjTffqCQGI+4hxktOEFaFLYohZAixitSN8sYrgfp5IApEFMVmSApQhJ75UGARIFMYzCnEJ0susCrFAuxZW+tH3UhOEkAiyik0NgsSQA9hPaxPm3qfKHLB1xa0KEeJgCwLWEkfAK2nIZtAP2vLCCIf4WsCfGCbMtcrDvcwRFlRkCmLpo0okQV9LI4UCAYj+rJdhmxH5YSgsYVjDazEobdY80ChvijO1JoU5LMDKWJp2vBpV2WBYM0pp3a0gJoCEDFFuFTuFqKC4BTLoe6eSlXLkmAS4kDC/asLCSs4pTwZDubj3pEiCOMlOx59nU14pbeJR7xk8ns6q6sMpyg04IIQdhFhkztgOhccKEG++DHnDWL0d7uLZy97P3PugnZwTqICw4Mvr0N+Nf4M+TsIWDYQWPdoC5RwJcGAYTCSx2/xq/eAkPmq9jxnc15nz0XvmB7VV0CN49u9/HWVO/t/Rj0pvkKoDeyfPxM3h03cI1SSEH+Nkfh32wnex7LzDVm+RK5Dq/OKFwX36xAcTKSjlwbjYgeWehaYJWQYv0eR9y5YHPWOzfksZ2QTdg7KnK/vz8fDWXyz0/Pz9vTU9P70UCCAsuIBjQT6CboCPqKgY4i31PqEXHtkHXVYPz+fwraOampqb24zDYRnDAwHrIChzJYMjBekB06rT2Tc55LsxlQZ6MYcLwvkmQdsjiQAGuSOBfiGKJyuACsdKNeMEs0lzUDQq3nzQpOl15k45cJCpZXl5egrAUQBmoIzki8pZRkXQVhYfgF6PeB2UZSHn0j2Qymdeapu0BuD0JkMs4KIZsjlKkrWIPU4BSidHY2SgMdqlq635hmlQ40D+AxTuKInkstivpW51ydjMUQKxIWAAHt6FFQ9uO47jHE4YW+js+odsgp0a0GP7uSLmJzHWIYXmeQ8C2o4QYQXYAlLshQ9vGcIK+EwWkqNomMbNF4AQjVQI8UMwdRf3/YKoCLDXByerx8fHipOtWaAbTFAQHzdu48zkYYP+zaOw/l78CDACMN16x79CFcgAAAABJRU5ErkJggg==\"","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { isInBoundsBox, isInBoundsLine, angleOffset } from \"../geometry\";\r\nimport { setLineStyle } from \"../canvasUtils\";\r\n\r\nexport default class Line extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n this.headX = position.x;\r\n this.headY = position.y;\r\n this.tailX = position.x;\r\n this.tailY = position.y;\r\n\r\n this.fixedDimensions = false;\r\n\r\n this.activeTail = false;\r\n this.activeHead = false;\r\n this.activeBodyOffset = false;\r\n\r\n this.headOffset = 0;\r\n }\r\n\r\n get angle() {\r\n return Math.atan2(this.dy, this.dx);\r\n }\r\n\r\n get length() {\r\n return Math.sqrt(this.dx * this.dx + this.dy * this.dy);\r\n }\r\n\r\n get dy() {\r\n return this.tailY - this.headY;\r\n }\r\n\r\n get dx() {\r\n return this.tailX - this.headX;\r\n }\r\n\r\n get isActive() {\r\n return this.activeTail || this.activeHead || this.activeBodyOffset;\r\n }\r\n\r\n get interactionPoints() {\r\n return [{ x: this.headX, y: this.headY }, { x: this.tailX, y: this.tailY }];\r\n }\r\n\r\n draw(ctx) {\r\n setLineStyle(ctx, this);\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(this.tailX, this.tailY);\r\n\r\n // shift the head a little bit so that the tip of the arrow is sharp\r\n let head = {x: this.headX, y: this.headY};\r\n if (this.headOffset) {\r\n let offset = angleOffset(this.headOffset, this.angle);\r\n head.x += offset.x;\r\n head.y += offset.y;\r\n }\r\n ctx.lineTo(head.x, head.y);\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n isInBounds(x, y){\r\n return isInBoundsBox(x, y, this.headX, this.headY, this.transform.zoom)\r\n || isInBoundsBox(x, y, this.tailX, this.tailY, this.transform.zoom)\r\n || isInBoundsLine(x, y, this.headX, this.headY, this.tailX, this.tailY);\r\n }\r\n\r\n mousedown(x, y){\r\n super.mousedown(x, y);\r\n this.clearActiveState();\r\n\r\n if (!this.fixedDimensions && isInBoundsBox(x, y, this.tailX, this.tailY, this.transform.zoom)) \r\n this.activeTail = true;\r\n else if (!this.fixedDimensions && isInBoundsBox(x, y, this.headX, this.headY, this.transform.zoom)) \r\n this.activeHead = true;\r\n else this.activeBodyOffset = true;\r\n }\r\n\r\n mousemove(x, y){\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n\r\n if (!this.fixedDimensions && this.activeTail) this.updateTail(dx, dy);\r\n else if (!this.fixedDimensions && this.activeHead) this.updateHead(dx, dy);\r\n else if (this.activeBodyOffset) this.updateLine(dx, dy);\r\n }\r\n\r\n updateTail(dx, dy) {\r\n this.tailX += dx;\r\n this.tailY += dy;\r\n }\r\n\r\n setTail(x, y){\r\n this.tailX = x;\r\n this.tailY = y;\r\n }\r\n\r\n updateHead(dx, dy) {\r\n this.headX += dx;\r\n this.headY += dy;\r\n }\r\n\r\n updateLine(dx, dy) {\r\n this.updateHead(dx,dy);\r\n this.updateTail(dx,dy);\r\n }\r\n\r\n clearActiveState(){\r\n this.activeTail = false;\r\n this.activeHead = false;\r\n this.activeBodyOffset = false;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { angleOffset } from \"../geometry\";\r\nimport Line from \"./line\";\r\nimport { drawBoxes, setLineStyle } from \"../canvasUtils\";\r\nexport default class Arrow extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.line = new Line(position, options);\r\n this.line.headOffset = 3;\r\n\r\n this.arrowOuterLength = 25;\r\n this.arrowInnerLength = 12;\r\n this.arrowAngle = 3 * Math.PI / 16;\r\n }\r\n\r\n get corner1() {\r\n const offset = angleOffset(this.arrowOuterLength + (this.lineWidth * 1.5), this.line.angle - this.arrowAngle);\r\n return { x: this.line.headX + offset.x, y: this.line.headY + offset.y };\r\n }\r\n\r\n get inner() {\r\n const offset = angleOffset(this.arrowInnerLength + (this.lineWidth * 1.5), this.line.angle);\r\n return { x: this.line.headX + offset.x, y: this.line.headY + offset.y };\r\n }\r\n\r\n get corner2() {\r\n const offset = angleOffset(this.arrowOuterLength + (this.lineWidth * 1.5), this.line.angle + this.arrowAngle);\r\n return { x: this.line.headX + offset.x, y: this.line.headY + offset.y };\r\n }\r\n\r\n get outer() {\r\n const offset = {\r\n x: this.lineWidth * Math.cos(this.line.angle), \r\n y: this.lineWidth * Math.sin(this.line.angle)\r\n };\r\n return { x: this.line.headX - offset.x, y: this.line.headY - offset.y };\r\n } \r\n\r\n draw(ctx) {\r\n this.line.draw(ctx);\r\n this.drawArrow(ctx);\r\n\r\n if (this.line.isActive) drawBoxes(ctx, this.line.interactionPoints, this.line.transform.zoom);\r\n }\r\n\r\n drawArrow(ctx) {\r\n setLineStyle(ctx, this);\r\n ctx.beginPath();\r\n let outer = this.outer;\r\n let corner1 = this.corner1;\r\n let inner = this.inner;\r\n let corner2 = this.corner2;\r\n ctx.moveTo(outer.x, outer.y);\r\n ctx.lineTo(corner1.x, corner1.y);\r\n ctx.lineTo(inner.x, inner.y);\r\n ctx.lineTo(corner2.x, corner2.y);\r\n ctx.lineTo(outer.x, outer.y);\r\n ctx.closePath();\r\n ctx.fill();\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.line.isInBounds(x, y);\r\n }\r\n\r\n mousedown(x, y) {\r\n this.line.mousedown(x, y);\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n this.line.mousemove(x, y);\r\n this.signalReady();\r\n }\r\n\r\n deactivate() {\r\n this.line.clearActiveState();\r\n this.signalReady();\r\n }\r\n\r\n setParentTransform(obj) {\r\n this.line.setParentTransform(obj);\r\n this.signalReady();\r\n }\r\n\r\n setLineWidth(width) {\r\n super.setLineWidth(width);\r\n this.line.setLineWidth(width);\r\n this.signalReady();\r\n }\r\n \r\n updateColor(color) \r\n {\r\n this.line.color = color;\r\n this.color = color;\r\n }\r\n}","import { POINTER_CLASSES } from \"../../config/config\";\r\nimport InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { drawBox, setFontStyle, measureText, hexToRgb } from \"../canvasUtils\";\r\nimport { isInBoundsBox, segmentLengthPoints } from \"../geometry\";\r\nimport store from \"../../store\";\r\nexport default class Text extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.topLeftX = position.x;\r\n this.topLeftY = position.y;\r\n this.contactPoint = { x: 0, y: 0 };\r\n this.distanceFromTopLeft = { x: 0, y: 0 };\r\n this.clickDetected = false;\r\n\r\n let size = options.textSize || 40;\r\n this.size = size;\r\n this.font = size + \"px Calibri\";\r\n this.baseline = \"hanging\";\r\n let rgb = hexToRgb(options.color);\r\n this.backgroundColor = `rgba(${rgb.r},${rgb.g},${rgb.b},0.5)`;\r\n let avg = (rgb.r + rgb.g + rgb.b) / 3;\r\n if (avg < 128) this.fontColor = \"#D9D9D9\";\r\n else this.fontColor = \"#595959\";\r\n\r\n this.activeMovement = false;\r\n this.activeCorner = false;\r\n\r\n this.minWidth = Math.min(size * 12, 300);\r\n this.width = this.minWidth;\r\n this.height = size + size / 5;\r\n this.lineHeight = size + size / 5;\r\n this.minHeight = size + size / 5;\r\n\r\n this.text = \"\";\r\n this.rows = [{ text: \"\", textWidth: 0, start: 0, end: 0, endsWithLineBreak: false }];\r\n this.showBackgroundBox = true;\r\n\r\n this.syncPair = null;\r\n }\r\n\r\n get isActive() {\r\n return this.activeMovement || !!this.activeCorner;\r\n }\r\n\r\n onCreate(){\r\n this.openDialog();\r\n }\r\n\r\n openDialog(){\r\n store.commit(\"setTextAnnotationToEdit\", this);\r\n }\r\n\r\n draw(ctx) {\r\n if (this.showBackgroundBox) this.drawBackground(ctx);\r\n if (this.isActive) this.drawInteractionBoxes(ctx);\r\n if (this.text) this.drawText(ctx);\r\n }\r\n\r\n drawBackground(ctx) {\r\n ctx.beginPath();\r\n ctx.fillStyle = this.backgroundColor;\r\n ctx.fillRect(this.topLeftX, this.topLeftY, this.width, this.height);\r\n ctx.closePath();\r\n }\r\n\r\n drawText(ctx) {\r\n setFontStyle(ctx, this);\r\n for (let i = 0; i < this.rows.length; i++) this.drawRow(ctx, i);\r\n }\r\n\r\n drawRow(ctx, rowIndex) {\r\n let row = this.rows[rowIndex];\r\n let x = this.topLeftX;\r\n let y = this.topLeftY + rowIndex * this.lineHeight;\r\n ctx.fillStyle = this.fontColor;\r\n ctx.fillText(row.text, x, y);\r\n }\r\n\r\n drawInteractionBoxes(ctx) {\r\n drawBox(ctx, this.topLeftX, this.topLeftY, this.transform.zoom, 6);\r\n drawBox(ctx, this.topLeftX, this.bottomRightY, this.transform.zoom, 6);\r\n drawBox(ctx, this.bottomRightX, this.topLeftY, this.transform.zoom, 6);\r\n drawBox(ctx, this.bottomRightX, this.bottomRightY, this.transform.zoom, 6);\r\n }\r\n\r\n get bottomRightX() {\r\n return this.topLeftX + this.width;\r\n }\r\n\r\n get bottomRightY() {\r\n return this.topLeftY + this.height;\r\n }\r\n\r\n get topLeft() {\r\n return { x: this.topLeftX, y: this.topLeftY };\r\n }\r\n\r\n get topRight() {\r\n return { x: this.bottomRightX, y: this.topLeftY };\r\n }\r\n\r\n get bottomLeft() {\r\n return { x: this.topLeftX, y: this.bottomRightY };\r\n }\r\n\r\n get bottomRight() {\r\n return { x: this.bottomRightX, y: this.bottomRightY };\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isInBoundsResizeCorner(x, y)\r\n || this.isInBoundsTextBox(x, y);\r\n }\r\n\r\n isInBoundsResizeCorner(x, y) {\r\n return this.isInBoundsCorner(x, y, this.topLeft) \r\n || this.isInBoundsCorner(x, y, this.topRight)\r\n || this.isInBoundsCorner(x, y, this.bottomRight)\r\n || this.isInBoundsCorner(x, y, this.bottomLeft);\r\n }\r\n\r\n isInBoundsCorner(x, y, { x: cx, y: cy }) {\r\n return isInBoundsBox(x, y, cx, cy, this.transform.zoom);\r\n }\r\n\r\n isInBoundsTextBox(x, y) {\r\n return x > this.topLeftX\r\n && x < this.bottomRightX\r\n && y > this.topLeftY\r\n && y < this.bottomRightY;\r\n }\r\n\r\n mousedown(x, y) {\r\n this.clearActiveStates();\r\n if (this.isInBoundsCorner(x, y, this.topRight, 6)) {\r\n this.activeCorner = \"TR\";\r\n } else if (this.isInBoundsCorner(x, y, this.bottomRight, 6)) {\r\n this.activeCorner = \"BR\";\r\n } else if (this.isInBoundsCorner(x, y, this.bottomLeft, 6)) {\r\n this.activeCorner = \"BL\";\r\n } else if (this.isInBoundsCorner(x, y, this.topLeft, 6)) {\r\n this.activeCorner = \"TL\";\r\n } else {\r\n this.contactPoint.x = x;\r\n this.contactPoint.y = y;\r\n this.distanceFromTopLeft.x = this.contactPoint.x - this.topLeftX;\r\n this.distanceFromTopLeft.y = this.contactPoint.y - this.topLeftY;\r\n this.activeMovement = true;\r\n this.clickDetected = true;\r\n }\r\n\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.activeMovement) this.updateLocation(x, y);\r\n else if (this.activeCorner) this.updateSize(x, y);\r\n this.signalReady();\r\n }\r\n\r\n mouseup() {\r\n if (this.clickDetected)\r\n this.openDialog();\r\n \r\n this.clickDetected = false;\r\n this.contactPoint.x = 0;\r\n this.contactPoint.y = 0;\r\n this.distanceFromTopLeft.x = 0;\r\n this.distanceFromTopLeft.y = 0;\r\n this.signalReady();\r\n }\r\n\r\n updateLocation(x, y) {\r\n this.topLeftX = x - this.distanceFromTopLeft.x;\r\n this.topLeftY = y - this.distanceFromTopLeft.y;\r\n this.updateClickDetection(x, y);\r\n }\r\n\r\n updateClickDetection(x, y){\r\n if (!this.clickDetected) return;\r\n let delta = 5;\r\n let distance = segmentLengthPoints({x, y}, this.contactPoint);\r\n this.clickDetected = distance < delta;\r\n }\r\n\r\n updateSize(x, y) {\r\n let width = 0;\r\n let height = 0;\r\n\r\n if (this.activeCorner.includes(\"L\")) {\r\n width = Math.max(this.bottomRightX - x, this.minWidth);\r\n if (width > this.minWidth) this.topLeftX = x;\r\n }\r\n else if (this.activeCorner.includes(\"R\")) width = Math.max(x - this.topLeftX, this.minWidth);\r\n\r\n const doReSplit = (width !== this.width);\r\n this.width = width;\r\n if (doReSplit)\r\n this.splitLinesAndSetMinHeight();\r\n\r\n\r\n if (this.activeCorner.includes(\"B\")) height = Math.max(y - this.topLeftY, this.minHeight);\r\n\r\n if (this.activeCorner.includes(\"T\")) {\r\n height = Math.max(this.bottomRightY - y, this.minHeight);\r\n if (height > this.minHeight) this.topLeftY = y;\r\n }\r\n\r\n this.height = height;\r\n }\r\n\r\n deactivate() {\r\n this.clearActiveStates();\r\n this.signalReady();\r\n }\r\n\r\n clearActiveStates() {\r\n this.activeMovement = false;\r\n this.activeCorner = null;\r\n this.clickDetected = false;\r\n this.contactPoint.x = 0;\r\n this.contactPoint.y = 0;\r\n this.distanceFromTopLeft.x = 0;\r\n this.distanceFromTopLeft.y = 0;\r\n }\r\n\r\n getRowIndex(offsetY) {\r\n let rowIndex = Math.floor(offsetY / this.lineHeight);\r\n return Math.max(0, Math.min(this.rows.length - 1, rowIndex));\r\n }\r\n\r\n setSelectionIndices(selection, index, row, col) {\r\n selection.index = index;\r\n selection.row = row;\r\n selection.col = col;\r\n }\r\n\r\n getClosestColumn(text, x) {\r\n // we want the closest index on the left\r\n let length = 0;\r\n for (let i = 0; i < text.length; i++) {\r\n let currentChar = text[i];\r\n let width = measureText(currentChar, this.font);\r\n if (x < (length + width / 2)) return i;\r\n length += width;\r\n }\r\n return text.length;\r\n }\r\n\r\n flipSelectionEndpoints() {\r\n let start = Object.assign({}, this.selectionStart);\r\n this.selectionStart = this.selectionEnd;\r\n this.selectionEnd = start;\r\n this.selectionDirection = this.selectionDirection == \"forward\" ? \"backward\" : \"forward\";\r\n }\r\n\r\n getHoverClass(x, y) {\r\n if (this.isInBoundsCorner(x, y, this.topLeft)) return POINTER_CLASSES.nwseResize;\r\n if (this.isInBoundsCorner(x, y, this.topRight)) return POINTER_CLASSES.neswResize;\r\n if (this.isInBoundsCorner(x, y, this.bottomLeft)) return POINTER_CLASSES.neswResize;\r\n if (this.isInBoundsCorner(x, y, this.bottomRight)) return POINTER_CLASSES.nwseResize;\r\n return POINTER_CLASSES.text;\r\n }\r\n\r\n splitLinesAndSetMinHeight() {\r\n this.measureTextAndSplitLines();\r\n this.increaseHeightIfNeeded();\r\n }\r\n\r\n // this.rows = [{ text: \"\", textWidth: 0, start: 0, end: 0, endsWithLineBreak: false }];\r\n measureTextAndSplitLines() {\r\n this.rows = [];\r\n let start = 0;\r\n let textWidth = 0;\r\n let text = \"\";\r\n for (let i = 0; i < this.text.length; i++) {\r\n let currentLetter = this.text.charAt(i);\r\n let lineBreak = this.isLineBreak(currentLetter);\r\n let charWidth = 0;\r\n\r\n if (!lineBreak) {\r\n charWidth = measureText(currentLetter, this.font);\r\n textWidth += charWidth;\r\n text += currentLetter;\r\n }\r\n\r\n let maxWidth = this.width - charWidth;\r\n if (lineBreak || textWidth > maxWidth) {\r\n this.rows.push({ text, textWidth, start, end: i + 1, endsWithLineBreak: lineBreak });\r\n start = i + 1;\r\n textWidth = 0;\r\n text = \"\";\r\n }\r\n }\r\n // put whatever's leftover at the end\r\n let leftover = this.text.substring(start);\r\n let leftoverWidth = measureText(leftover, this.font);\r\n let lastChar = this.text.charAt(this.text.length - 1);\r\n if (!this.rows.length || leftover || this.isLineBreak(lastChar))\r\n this.rows.push({ text: leftover, textWidth: leftoverWidth, start, end: this.text.length, endsWithLineBreak: false });\r\n }\r\n\r\n isLineBreak(letter) {\r\n return letter === \"\\n\" || letter === \"\\r\";\r\n }\r\n\r\n increaseHeightIfNeeded() {\r\n this.minHeight = this.getMinHeightRequired();\r\n this.height = Math.max(this.height, this.minHeight);\r\n }\r\n\r\n getMinHeightRequired() {\r\n return this.rows.length * this.lineHeight;\r\n }\r\n\r\n updateTextArea(text) {\r\n this.text = text;\r\n this.splitLinesAndSetMinHeight();\r\n this.signalReady();\r\n }\r\n\r\n duplicateAndSyncAnnotation(e) {\r\n this.updateTextArea(e.text);\r\n this.width = e.width;\r\n this.height = e.height;\r\n e.setSyncPair(this);\r\n this.setSyncPair(e);\r\n }\r\n\r\n setSyncPair(obj) {\r\n this.syncPair = obj;\r\n }\r\n\r\n syncText() {\r\n if (this.syncPair) {\r\n this.syncPair.updateTextSize(this.size);\r\n this.syncPair.updateTextArea(this.text);\r\n this.syncPair.topLeftX = this.topLeftX;\r\n this.syncPair.topLeftY = this.topLeftY;\r\n this.syncPair.minWidth = this.minWidth;\r\n this.syncPair.width = this.width;\r\n this.syncPair.height = this.height;\r\n this.syncPair.lineHeight = this.lineHeight;\r\n this.syncPair.minHeight = this.minHeight;\r\n }\r\n }\r\n\r\n updateTextSize(size){\r\n size = Number(size);\r\n if (size == this.size) return;\r\n this.size = size || 40;\r\n this.font = size + \"px Calibri\";\r\n this.minWidth = Math.min(size * 12, 600);\r\n this.width = Math.max(this.width, this.minWidth);\r\n this.lineHeight = size + size / 5;\r\n this.splitLinesAndSetMinHeight();\r\n this.height = this.minHeight;\r\n this.signalReady();\r\n }\r\n\r\n setWidthToText() {\r\n let maxRowSize = 0;\r\n for (let j = 0; j < this.rows.length; j++) \r\n {\r\n if (this.rows[j].textWidth > maxRowSize)\r\n maxRowSize = this.rows[j].textWidth;\r\n }\r\n this.minWidth = maxRowSize;\r\n this.width = this.minWidth;\r\n }\r\n\r\n setShowBackgroundBox(val) {\r\n this.showBackgroundBox = val.value;\r\n }\r\n\r\n updateFontColor(val) {\r\n this.fontColor = val;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { POINTER_CLASSES } from \"../../config/config\";\r\nimport { drawBox } from \"../canvasUtils\";\r\nimport { isInBoundsBox } from \"../geometry\";\r\nexport default class Redaction extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.x = position.x;\r\n this.y = position.y;\r\n this.height = 40;\r\n this.width = 100;\r\n\r\n this.backgroundColor = \"black\";\r\n\r\n this.activeBody = false;\r\n // active sides ORs the boxSides flag below to represent selection of a side or corner\r\n this.activeSides = 0;\r\n this.boxSides = {\r\n top: 1,\r\n left: 2,\r\n right: 4,\r\n bottom: 8\r\n };\r\n }\r\n\r\n get isActive() {\r\n return this.activeBody || this.activeSides;\r\n }\r\n\r\n draw(ctx) {\r\n ctx.fillStyle = this.backgroundColor;\r\n ctx.fillRect(this.x, this.y, this.width, this.height);\r\n\r\n if (this.isActive) this.drawInteractionBoxes(ctx);\r\n }\r\n\r\n drawInteractionBoxes(ctx) {\r\n const boxes = this.getBoxes();\r\n for (let i = 0; i < boxes.length; i++) {\r\n const box = boxes[i];\r\n drawBox(ctx, box.x, box.y, this.transform.zoom);\r\n }\r\n }\r\n\r\n getBoxes() {\r\n return [\r\n {\r\n x: this.x,\r\n y: this.y,\r\n side: this.boxSides.top | this.boxSides.left,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.neswResize : POINTER_CLASSES.nwseResize\r\n },\r\n {\r\n x: this.x + this.width / 2,\r\n y: this.y,\r\n side: this.boxSides.top,\r\n hoverClass: POINTER_CLASSES.nsResize\r\n },\r\n {\r\n x: this.x + this.width,\r\n y: this.y,\r\n side: this.boxSides.top | this.boxSides.right,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.nwseResize : POINTER_CLASSES.neswResize\r\n },\r\n {\r\n x: this.x,\r\n y: this.y + this.height / 2,\r\n side: this.boxSides.left,\r\n hoverClass: POINTER_CLASSES.ewResize\r\n },\r\n {\r\n x: this.x + this.width,\r\n y: this.y + this.height / 2,\r\n side: this.boxSides.right,\r\n hoverClass: POINTER_CLASSES.ewResize\r\n },\r\n {\r\n x: this.x,\r\n y: this.y + this.height,\r\n side: this.boxSides.bottom | this.boxSides.left,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.nwseResize : POINTER_CLASSES.neswResize\r\n },\r\n {\r\n x: this.x + this.width / 2,\r\n y: this.y + this.height,\r\n side: this.boxSides.bottom,\r\n hoverClass: POINTER_CLASSES.nsResize\r\n },\r\n {\r\n x: this.x + this.width,\r\n y: this.y + this.height,\r\n side: this.boxSides.bottom | this.boxSides.right,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.neswResize : POINTER_CLASSES.nwseResize\r\n }];\r\n }\r\n\r\n flipCorners() {\r\n return (this.width > 0) !== (this.height > 0);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isInBoundsBody(x, y) || this.getHoveredBox(x, y);\r\n }\r\n\r\n isInBoundsBody(x, y) {\r\n return this.isBetween(x, this.x, this.x + this.width)\r\n && this.isBetween(y, this.y, this.y + this.height);\r\n }\r\n\r\n isBetween(value, bound1, bound2) {\r\n const min = Math.min(bound1, bound2);\r\n const max = Math.max(bound1, bound2);\r\n return value >= min && value <= max;\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n let box = this.getHoveredBox(x, y);\r\n this.activeSides = box && box.side;\r\n this.activeBody = !box;\r\n this.signalReady();\r\n }\r\n\r\n getHoveredBox(x, y) {\r\n const boxes = this.getBoxes();\r\n for (let i = 0; i < boxes.length; i++) {\r\n const box = boxes[i];\r\n if (isInBoundsBox(x, y, box.x, box.y, this.transform.zoom)) return box;\r\n }\r\n return null;\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.activeBody) this.updateBody(x, y);\r\n else if (this.activeSides) this.updateSides(x, y);\r\n this.signalReady();\r\n }\r\n\r\n updateBody(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n this.x = this.x + dx;\r\n this.y = this.y + dy;\r\n }\r\n\r\n updateSides(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n if (this.updatingTop()) this.updateTop(dy);\r\n if (this.updatingLeft()) this.updateLeft(dx);\r\n if (this.updatingRight()) this.updateRight(dx);\r\n if (this.updatingBottom()) this.updateBottom(dy);\r\n }\r\n\r\n updatingTop() {\r\n return this.updatingSide(this.boxSides.top);\r\n }\r\n\r\n updatingLeft() {\r\n return this.updatingSide(this.boxSides.left);\r\n }\r\n\r\n updatingRight() {\r\n return this.updatingSide(this.boxSides.right);\r\n }\r\n\r\n updatingBottom() {\r\n return this.updatingSide(this.boxSides.bottom);\r\n }\r\n\r\n updatingSide(side) {\r\n return (this.activeSides & side) === side;\r\n }\r\n\r\n updateTop(dy) {\r\n this.y += dy;\r\n this.height -= dy;\r\n }\r\n\r\n updateLeft(dx) {\r\n this.x += dx;\r\n this.width -= dx;\r\n }\r\n\r\n updateRight(dx) {\r\n this.width += dx;\r\n }\r\n\r\n updateBottom(dy) {\r\n this.height += dy;\r\n }\r\n\r\n deactivate() {\r\n this.activeBody = false;\r\n this.activeSides = 0;\r\n this.signalReady();\r\n }\r\n\r\n getHoverClass(x, y) {\r\n let box = this.getHoveredBox(x, y);\r\n if (box) return box.hoverClass;\r\n return POINTER_CLASSES.pointer;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { POINTER_CLASSES } from \"../../config/config\";\r\nimport { drawBox } from \"../canvasUtils\";\r\nimport { isInBoundsBox } from \"../geometry\";\r\nexport default class OutlineBox extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.x = position.x;\r\n this.y = position.y;\r\n this.height = 40;\r\n this.width = 100;\r\n\r\n this.backgroundColor = \"black\";\r\n\r\n this.activeBody = false;\r\n // active sides ORs the boxSides flag below to represent selection of a side or corner\r\n this.activeSides = 0;\r\n this.boxSides = {\r\n top: 1,\r\n left: 2,\r\n right: 4,\r\n bottom: 8\r\n };\r\n }\r\n\r\n get isActive() {\r\n return this.activeBody || this.activeSides;\r\n }\r\n\r\n draw(ctx) {\r\n ctx.strokeStyle = this.color;\r\n ctx.lineWidth = this.lineWidth;\r\n ctx.strokeRect(this.x, this.y, this.width, this.height);\r\n\r\n if (this.isActive) this.drawInteractionBoxes(ctx);\r\n }\r\n\r\n drawInteractionBoxes(ctx) {\r\n const boxes = this.getBoxes();\r\n for (let i = 0; i < boxes.length; i++) {\r\n const box = boxes[i];\r\n drawBox(ctx, box.x, box.y, this.transform.zoom);\r\n }\r\n }\r\n\r\n getBoxes() {\r\n return [\r\n {\r\n x: this.x,\r\n y: this.y,\r\n side: this.boxSides.top | this.boxSides.left,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.neswResize : POINTER_CLASSES.nwseResize\r\n },\r\n {\r\n x: this.x + this.width / 2,\r\n y: this.y,\r\n side: this.boxSides.top,\r\n hoverClass: POINTER_CLASSES.nsResize\r\n },\r\n {\r\n x: this.x + this.width,\r\n y: this.y,\r\n side: this.boxSides.top | this.boxSides.right,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.nwseResize : POINTER_CLASSES.neswResize\r\n },\r\n {\r\n x: this.x,\r\n y: this.y + this.height / 2,\r\n side: this.boxSides.left,\r\n hoverClass: POINTER_CLASSES.ewResize\r\n },\r\n {\r\n x: this.x + this.width,\r\n y: this.y + this.height / 2,\r\n side: this.boxSides.right,\r\n hoverClass: POINTER_CLASSES.ewResize\r\n },\r\n {\r\n x: this.x,\r\n y: this.y + this.height,\r\n side: this.boxSides.bottom | this.boxSides.left,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.nwseResize : POINTER_CLASSES.neswResize\r\n },\r\n {\r\n x: this.x + this.width / 2,\r\n y: this.y + this.height,\r\n side: this.boxSides.bottom,\r\n hoverClass: POINTER_CLASSES.nsResize\r\n },\r\n {\r\n x: this.x + this.width,\r\n y: this.y + this.height,\r\n side: this.boxSides.bottom | this.boxSides.right,\r\n hoverClass: this.flipCorners() ? POINTER_CLASSES.neswResize : POINTER_CLASSES.nwseResize\r\n }];\r\n }\r\n\r\n flipCorners() {\r\n return (this.width > 0) !== (this.height > 0);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isInBoundsBody(x, y) || this.getHoveredBox(x, y);\r\n }\r\n\r\n isInBoundsBody(x, y) {\r\n return this.isBetween(x, this.x, this.x + this.width)\r\n && this.isBetween(y, this.y, this.y + this.height);\r\n }\r\n\r\n isBetween(value, bound1, bound2) {\r\n const min = Math.min(bound1, bound2);\r\n const max = Math.max(bound1, bound2);\r\n return value >= min && value <= max;\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n let box = this.getHoveredBox(x, y);\r\n this.activeSides = box && box.side;\r\n this.activeBody = !box;\r\n this.signalReady();\r\n }\r\n\r\n getHoveredBox(x, y) {\r\n const boxes = this.getBoxes();\r\n for (let i = 0; i < boxes.length; i++) {\r\n const box = boxes[i];\r\n if (isInBoundsBox(x, y, box.x, box.y, this.transform.zoom)) return box;\r\n }\r\n return null;\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.activeBody) this.updateBody(x, y);\r\n else if (this.activeSides) this.updateSides(x, y);\r\n this.signalReady();\r\n }\r\n\r\n updateBody(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n this.x = this.x + dx;\r\n this.y = this.y + dy;\r\n }\r\n\r\n updateSides(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n if (this.updatingTop()) this.updateTop(dy);\r\n if (this.updatingLeft()) this.updateLeft(dx);\r\n if (this.updatingRight()) this.updateRight(dx);\r\n if (this.updatingBottom()) this.updateBottom(dy);\r\n }\r\n\r\n updatingTop() {\r\n return this.updatingSide(this.boxSides.top);\r\n }\r\n\r\n updatingLeft() {\r\n return this.updatingSide(this.boxSides.left);\r\n }\r\n\r\n updatingRight() {\r\n return this.updatingSide(this.boxSides.right);\r\n }\r\n\r\n updatingBottom() {\r\n return this.updatingSide(this.boxSides.bottom);\r\n }\r\n\r\n updatingSide(side) {\r\n return (this.activeSides & side) === side;\r\n }\r\n\r\n updateTop(dy) {\r\n this.y += dy;\r\n this.height -= dy;\r\n }\r\n\r\n updateLeft(dx) {\r\n this.x += dx;\r\n this.width -= dx;\r\n }\r\n\r\n updateRight(dx) {\r\n this.width += dx;\r\n }\r\n\r\n updateBottom(dy) {\r\n this.height += dy;\r\n }\r\n\r\n deactivate() {\r\n this.activeBody = false;\r\n this.activeSides = 0;\r\n this.signalReady();\r\n }\r\n\r\n getHoverClass(x, y) {\r\n let box = this.getHoveredBox(x, y);\r\n if (box) return box.hoverClass;\r\n return POINTER_CLASSES.pointer;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { setLineStyle, setBoxStyle, } from \"../canvasUtils\";\r\nimport { isInBoundsLine } from \"../geometry\";\r\n\r\nexport default class SegmentChain extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n let { x, y } = position;\r\n this.points = [{ x, y }];\r\n this.min = { x: x - 5, y: y - 5 };\r\n this.max = { x: x + 5, y: y + 5 };\r\n\r\n this.active = false;\r\n this.drawingInitialLine = true;\r\n\r\n this.minSegmentLength = 5;\r\n }\r\n\r\n draw(ctx) {\r\n this.drawAllPoints(ctx);\r\n }\r\n\r\n drawAllPoints(ctx) {\r\n setLineStyle(ctx, this);\r\n\r\n let point = this.points[0];\r\n ctx.beginPath();\r\n ctx.moveTo(point.x, point.y);\r\n for (let i = 1; i < this.points.length; i++) {\r\n point = this.points[i];\r\n ctx.lineTo(point.x, point.y);\r\n }\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n drawBoundingBox(ctx) {\r\n setBoxStyle(ctx);\r\n let x = this.min.x;\r\n let y = this.min.y;\r\n let width = this.max.x - this.min.x;\r\n let height = this.max.y - this.min.y;\r\n ctx.strokeRect(x, y, width, height);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return x >= this.min.x && x <= this.max.x\r\n && y >= this.min.y && y <= this.max.y;\r\n }\r\n\r\n isOnLines(x, y) \r\n {\r\n let retVal = false;\r\n let head = this.points[0];\r\n for (let i = 1; i < this.points.length; i++) {\r\n let tail = this.points[i];\r\n if (isInBoundsLine(x, y, head.x, head.y, tail.x, tail.y))\r\n retVal = true;\r\n head = this.points[i];\r\n }\r\n return retVal\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n this.active = true;\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.drawingInitialLine) {\r\n let lastPoint = this.points[this.points.length - 1];\r\n let nextPoint = { x, y };\r\n if (this.significantlyDifferent(nextPoint, lastPoint))\r\n this.addNextPoint(nextPoint);\r\n }\r\n else if (this.active) this.moveAllPoints(x, y);\r\n }\r\n\r\n // don't bother creating tons of points right next to eachother\r\n significantlyDifferent(nextPoint, lastPoint) {\r\n let diffX = nextPoint.x - lastPoint.x;\r\n let diffY = nextPoint.y - lastPoint.y;\r\n let squaredSum = diffX * diffX + diffY * diffY;\r\n return Math.sqrt(squaredSum) >= this.minSegmentLength;\r\n }\r\n\r\n addNextPoint(point) {\r\n this.points.push(point);\r\n this.updateBounds(point);\r\n }\r\n\r\n mouseup() {\r\n this.drawingInitialLine = false;\r\n }\r\n\r\n deactivate() {\r\n this.drawingInitialLine = false;\r\n this.active = false;\r\n }\r\n\r\n moveAllPoints(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n\r\n this.min.x += dx;\r\n this.min.y += dy;\r\n this.max.x += dx;\r\n this.max.y += dy;\r\n\r\n for (let i = 0; i < this.points.length; i++) {\r\n let point = this.points[i];\r\n point.x += dx;\r\n point.y += dy;\r\n }\r\n }\r\n\r\n recalculateBounds() {\r\n this.min.x = this.points[0].x - 5;\r\n this.max.x = this.points[0].x + 5;\r\n this.min.y = this.points[0].y - 5;\r\n this.max.y = this.points[0].y + 5;\r\n for (let i = 1; i < this.points.length; i++) this.updateBounds(this.points[i]);\r\n }\r\n\r\n updateBounds(point) {\r\n this.min.x = Math.min(this.min.x, point.x - 5);\r\n this.min.y = Math.min(this.min.y, point.y - 5);\r\n this.max.x = Math.max(this.max.x, point.x + 5);\r\n this.max.y = Math.max(this.max.y, point.y + 5);\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport SegmentChain from \"./segmentChain\";\r\n\r\nexport default class FreeHand extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n this.chain = new SegmentChain(position, options);\r\n }\r\n\r\n draw(ctx) {\r\n this.chain.draw(ctx);\r\n if (this.chain.active && !this.chain.drawingInitialLine) this.chain.drawBoundingBox(ctx);\r\n }\r\n\r\n isInBounds(x, y){\r\n return this.chain.isOnLines(x, y);\r\n }\r\n\r\n mousedown(x, y) {\r\n this.chain.mousedown(x, y);\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n this.chain.mousemove(x, y);\r\n this.signalReady();\r\n }\r\n\r\n mouseup() {\r\n this.chain.mouseup();\r\n this.signalReady();\r\n }\r\n\r\n deactivate() {\r\n this.chain.deactivate();\r\n this.signalReady();\r\n }\r\n \r\n setLineWidth(width) {\r\n this.chain.setLineWidth(width);\r\n this.signalReady();\r\n }\r\n\r\n updateColor(color) \r\n {\r\n this.chain.color = color;\r\n this.color = color;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { isInBoundsLine, displayAngle, normalizeAngle, segmentLengthDisp, isInBoundsBox } from \"../geometry\";\r\nimport { setLineStyle, setBoxStyle, drawBox, measureText, setFontStyle } from \"../canvasUtils\";\r\nexport default class Angle extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n let { x, y } = position;\r\n\r\n this.cornerX = x;\r\n this.cornerY = y;\r\n\r\n this.edge1X = x - 100;\r\n this.edge1Y = y;\r\n\r\n this.edge2X = x;\r\n this.edge2Y = y - 100;\r\n\r\n this.maxArcRadius = 30;\r\n\r\n let d = Math.sqrt(10);\r\n this.textX = x + d;\r\n this.textY = y + d;\r\n this.font = options.textSize + \"px Calibri\";\r\n\r\n this.text = \"90.0°\";\r\n this.textWidth = 0;\r\n\r\n this.activeTip1 = false;\r\n this.activeTip2 = false;\r\n this.activeCorner = false;\r\n this.activeBodyOffset = false;\r\n }\r\n\r\n get edge1dy() { return this.edge1Y - this.cornerY; }\r\n get edge1dx() { return this.edge1X - this.cornerX; }\r\n\r\n get edge2dy() { return this.edge2Y - this.cornerY; }\r\n get edge2dx() { return this.edge2X - this.cornerX; }\r\n\r\n get edge1Angle() { return Math.atan2(this.edge1dy, this.edge1dx); }\r\n get edge2Angle() { return Math.atan2(this.edge2dy, this.edge2dx); }\r\n\r\n get edgeAngleDiff() { return normalizeAngle(this.edge1Angle - this.edge2Angle); }\r\n get angle() { return Math.abs(this.edgeAngleDiff); }\r\n get textAngle() {\r\n let angle = (this.edge1Angle + this.edge2Angle) / 2;\r\n if (this.flipText) angle += Math.PI;\r\n return normalizeAngle(angle);\r\n }\r\n get flipText() { return Math.abs(this.edge2Angle - this.edge1Angle) < Math.PI; }\r\n get flipArc() { return this.edgeAngleDiff > 0; }\r\n\r\n get edge1Length() { return segmentLengthDisp(this.edge1dx, this.edge1dy); }\r\n get edge2Length() { return segmentLengthDisp(this.edge2dx, this.edge2dy); }\r\n\r\n get arcRadius() {\r\n return Math.min(this.maxArcRadius, this.edge1Length / 2, this.edge2Length / 2);\r\n }\r\n\r\n get isActive() {\r\n return this.activeTip1 || this.activeTip2 || this.activeCorner || this.activeBodyOffset;\r\n }\r\n\r\n draw(ctx) {\r\n this.drawLines(ctx);\r\n this.drawArc(ctx);\r\n this.drawText(ctx);\r\n\r\n if (this.isActive) this.drawInteractionBoxes(ctx);\r\n }\r\n\r\n drawLines(ctx) {\r\n setLineStyle(ctx, this);\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(this.edge1X, this.edge1Y);\r\n ctx.lineTo(this.cornerX, this.cornerY);\r\n ctx.stroke();\r\n ctx.closePath();\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(this.cornerX, this.cornerY);\r\n ctx.lineTo(this.edge2X, this.edge2Y);\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n drawArc(ctx) {\r\n setBoxStyle(ctx);\r\n\r\n ctx.beginPath();\r\n ctx.arc(this.cornerX, this.cornerY, this.arcRadius, this.edge1Angle, this.edge2Angle, this.flipArc);\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n drawText(ctx) {\r\n setFontStyle(ctx, this);\r\n ctx.fillText(this.text, this.textX, this.textY);\r\n }\r\n\r\n drawInteractionBoxes(ctx) {\r\n drawBox(ctx, this.edge1X, this.edge1Y, this.transform.zoom);\r\n drawBox(ctx, this.edge2X, this.edge2Y, this.transform.zoom);\r\n drawBox(ctx, this.cornerX, this.cornerY, this.transform.zoom);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return isInBoundsBox(x, y, this.cornerX, this.cornerY, this.transform.zoom)\r\n || isInBoundsBox(x, y, this.edge1X, this.edge1Y, this.transform.zoom)\r\n || isInBoundsBox(x, y, this.edge2X, this.edge2Y, this.transform.zoom)\r\n || this.isInBoundsText(x, y)\r\n || isInBoundsLine(x, y, this.edge1X, this.edge1Y, this.cornerX, this.cornerY)\r\n || isInBoundsLine(x, y, this.edge2X, this.edge2Y, this.cornerX, this.cornerY);\r\n }\r\n\r\n isInBoundsText(x, y) {\r\n return x >= this.textX && x <= this.textX + this.textWidth\r\n && y >= this.textY && y <= this.textY + 25;\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n this.clearActiveState();\r\n\r\n if (isInBoundsBox(x, y, this.edge1X, this.edge1Y, this.transform.zoom)) {\r\n this.updateTip1(x, y);\r\n this.activeTip1 = true;\r\n } else if (isInBoundsBox(x, y, this.edge2X, this.edge2Y, this.transform.zoom)) {\r\n this.updateTip2(x, y);\r\n this.activeTip2 = true;\r\n } else if (isInBoundsBox(x, y, this.cornerX, this.cornerY, this.transform.zoom)) {\r\n this.updateCorner(x, y);\r\n this.activeCorner = true;\r\n } else this.activeBodyOffset = true;\r\n\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.activeTip1) this.updateTip1(x, y);\r\n else if (this.activeTip2) this.updateTip2(x, y);\r\n else if (this.activeCorner) this.updateCorner(x, y);\r\n else if (this.activeBodyOffset) this.updateBodyOffset(x, y);\r\n\r\n this.calculateTextChanges();\r\n this.signalReady();\r\n }\r\n\r\n updateTip1(x, y) {\r\n this.edge1X = x;\r\n this.edge1Y = y;\r\n }\r\n\r\n updateTip2(x, y) {\r\n this.edge2X = x;\r\n this.edge2Y = y;\r\n }\r\n\r\n updateCorner(x, y) {\r\n this.cornerX = x;\r\n this.cornerY = y;\r\n }\r\n\r\n updateBodyOffset(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n this.updateTip1(this.edge1X + dx, this.edge1Y + dy);\r\n this.updateTip2(this.edge2X + dx, this.edge2Y + dy);\r\n this.updateCorner(this.cornerX + dx, this.cornerY + dy);\r\n }\r\n\r\n calculateTextChanges() {\r\n this.text = displayAngle(this.angle);\r\n this.textWidth = measureText(this.text);\r\n let x = this.cornerX + 15 * Math.cos(this.textAngle);\r\n let y = this.cornerY + 15 * Math.sin(this.textAngle);\r\n if (this.textAngle < (-Math.PI / 2) || this.textAngle > (Math.PI / 2)) x -= this.textWidth;\r\n if (this.textAngle < 0) y -= 25;\r\n this.textX = x;\r\n this.textY = y;\r\n }\r\n\r\n clearActiveState() {\r\n this.activeTip1 = false;\r\n this.activeTip2 = false;\r\n this.activeCorner = false;\r\n this.activeBodyOffset = false;\r\n }\r\n\r\n deactivate() {\r\n this.clearActiveState();\r\n this.signalReady();\r\n }\r\n\r\n updateTextSize(size) {\r\n this.setTextSize(size);\r\n this.font = this.options.textSize + \"px Calibri\";\r\n this.signalReady();\r\n }\r\n}","import { setBoxStyle } from \"../canvasUtils\";\r\nimport InteractiveAnnotation from \"./interactiveAnnotation\";\r\n\r\nexport default class MeasurementText extends InteractiveAnnotation{\r\n constructor() {\r\n super();\r\n\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0; \r\n this.isDetach = false;\r\n this.textContextRotation = 0;\r\n }\r\n\r\n get bottomLeft (){\r\n return this.y + this.height;\r\n }\r\n\r\n get cx(){\r\n return this.width/2;\r\n }\r\n\r\n get cy(){\r\n return this.height/2;\r\n }\r\n\r\n updateAndDrawRotatedText(width, height, ctx, text, x, y, textContextRotation){\r\n this.updateTextWidthHeight(width, height);\r\n this.drawRotatedMeasurementText(ctx, text, x, y, textContextRotation)\r\n }\r\n\r\n drawRotatedMeasurementText(ctx, text, x, y, textContextRotation){\r\n if(!this.isDetach){ \r\n ctx.save();\r\n ctx.translate(x, y)\r\n ctx.rotate(textContextRotation);\r\n ctx.fillText(text, 0, 0);\r\n ctx.restore();\r\n this.updatePosition(x, y);\r\n this.textContextRotation = textContextRotation;\r\n }else{\r\n ctx.save();\r\n ctx.translate(this.x, this.y)\r\n ctx.rotate(this.textContextRotation);\r\n ctx.fillText(text, 0, 0);\r\n ctx.restore();\r\n }\r\n }\r\n\r\n updateAndDraw(width, height, ctx, text, x, y){\r\n this.updateTextWidthHeight(width, height);\r\n this.drawMeasurementText(ctx, text, x, y)\r\n }\r\n\r\n updateTextWidthHeight(width, height){\r\n this.width = width;\r\n this.height = height;\r\n }\r\n\r\n updatePosition(x, y){\r\n this.x = x;\r\n this.y = y;\r\n }\r\n\r\n drawMeasurementText(ctx, text, x, y){\r\n if(!this.isDetach){\r\n ctx.fillText(text, x, y);\r\n this.updatePosition(x, y);\r\n }else{\r\n ctx.fillText(text, this.x, this.y);\r\n }\r\n }\r\n\r\n drawTextInteractionBoxe(ctx){\r\n setBoxStyle(ctx);\r\n ctx.beginPath();\r\n ctx.strokeRect(this.x , this.y, this.width, this.height);\r\n ctx.closePath();\r\n }\r\n\r\n drawRotatedTextInteractionBox(ctx){\r\n setBoxStyle(ctx);\r\n let corners = this.getRotatedCorners();\r\n ctx.beginPath();\r\n ctx.moveTo(corners.topLeft.x, corners.topLeft.y);\r\n ctx.lineTo(corners.bottomLeft.x, corners.bottomLeft.y);\r\n ctx.lineTo(corners.bottomRight.x, corners.bottomRight.y);\r\n ctx.lineTo(corners.topRight.x, corners.topRight.y);\r\n ctx.lineTo(corners.topLeft.x, corners.topLeft.y);\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n isInBound(x, y){\r\n return this.isBetween(x, this.x, this.x + this.width)\r\n && this.isBetween(y, this.y, this.bottomLeft);\r\n }\r\n\r\n isInBoundRotation(x,y){\r\n let corners = this.getRotatedCorners();\r\n return this.isBetween(x, corners.topLeft.x, corners.bottomRight.x)\r\n && this.isBetween(y, corners.bottomLeft.y, corners.topRight.y);\r\n }\r\n\r\n getRotatedCorners(){\r\n let ruler = {x: this.x, y: this.y};\r\n let sin = Math.sin(this.textContextRotation);\r\n let cos = Math.cos(this.textContextRotation);\r\n let h = this.height;\r\n let w = this.width;\r\n let corners ={\r\n topLeft: ruler , \r\n topRight: {x: ruler.x + w*cos, y: ruler.y + w*sin},\r\n bottomLeft: { x: ruler.x - h*sin, y: ruler.y + h*cos},\r\n bottomRight: {x: ruler.x + w*cos - h*sin, y: ruler.y + w*sin + h*cos}\r\n }\r\n return corners;\r\n }\r\n \r\n isBetween(value, bound1, bound2) {\r\n const min = Math.min(bound1, bound2);\r\n const max = Math.max(bound1, bound2);\r\n return value >= min && value <= max;\r\n }\r\n\r\n updateLocation(x, y){\r\n this.isDetach = true;\r\n this.x = x;\r\n this.y = y;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport Line from \"./line\";\r\nimport { drawBoxes, setFontStyle, measureText } from \"../canvasUtils\";\r\nimport MeasurementText from \"./measurementText\";\r\n\r\nexport default class LengthLine extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.line = new Line(position, options);\r\n\r\n this.delimiterLength = 30;\r\n this.delimiterWidth = 1;\r\n\r\n this.baseline = \"hanging\";\r\n this.textOffset = 10;\r\n this.measurementText = new MeasurementText();\r\n this.textActive = false;\r\n }\r\n\r\n get delimiterAngle() {\r\n let adjustment = Math.PI / 2;\r\n if (Math.abs(this.line.angle) > adjustment) adjustment *= -1;\r\n return this.line.angle + adjustment;\r\n }\r\n\r\n get delimiterOffset() {\r\n return {\r\n x: this.delimiterLength * Math.cos(this.delimiterAngle),\r\n y: this.delimiterLength * Math.sin(this.delimiterAngle)\r\n }\r\n }\r\n\r\n get textOffsetAngle(){\r\n return this.textContextRotation + Math.PI / 4;\r\n }\r\n\r\n get textPosition() {\r\n let useTail = this.line.tailX < this.line.headX;\r\n let x = useTail ? this.line.tailX : this.line.headX;\r\n let y = useTail ? this.line.tailY : this.line.headY;\r\n return { \r\n x: x + this.textOffset * Math.cos(this.textOffsetAngle), \r\n y: y + this.textOffset * Math.sin(this.textOffsetAngle) };\r\n }\r\n\r\n get textContextRotation(){\r\n let adjustment = 0;\r\n if (Math.abs(this.line.angle) > Math.PI / 2) adjustment += Math.PI;\r\n return this.line.angle + adjustment;\r\n }\r\n\r\n get text(){\r\n let length = this.scale * this.line.length;\r\n return length.toFixed(2) + \" mm\";\r\n }\r\n\r\n get textWidth(){\r\n return measureText(this.text, this.font);\r\n }\r\n\r\n draw(ctx) {\r\n this.line.draw(ctx);\r\n this.drawDelimiters(ctx);\r\n this.drawText(ctx);\r\n\r\n if (this.line.isActive) drawBoxes(ctx, this.line.interactionPoints, this.line.transform.zoom);\r\n\r\n if (this.textActive) this.measurementText.drawRotatedTextInteractionBox(ctx)\r\n }\r\n\r\n drawDelimiters(ctx) {\r\n ctx.lineWidth = this.delimiterWidth;\r\n let offset = this.delimiterOffset;\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(this.line.tailX, this.line.tailY);\r\n ctx.lineTo(this.line.tailX + offset.x, this.line.tailY + offset.y);\r\n ctx.stroke();\r\n ctx.closePath();\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(this.line.headX, this.line.headY);\r\n ctx.lineTo(this.line.headX + offset.x, this.line.headY + offset.y);\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n drawText(ctx) {\r\n setFontStyle(ctx, this);\r\n let position = this.textPosition;\r\n this.measurementText.updateAndDrawRotatedText(this.textWidth, this.textSize, ctx, this.text, position.x, position.y, this.textContextRotation);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.line.isInBounds(x, y) || this.measurementText.isInBoundRotation(x, y);\r\n }\r\n\r\n mousedown(x, y) {\r\n if(this.measurementText.isInBoundRotation(x, y))\r\n this.textActive = true;\r\n else this.line.mousedown(x, y);\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n if(this.textActive) this.measurementText.updateLocation(x, y);\r\n else this.line.mousemove(x, y);\r\n this.signalReady();\r\n }\r\n\r\n deactivate() {\r\n this.line.clearActiveState();\r\n this.textActive = false;\r\n this.signalReady();\r\n }\r\n\r\n setParentTransform(obj) {\r\n this.line.setParentTransform(obj);\r\n this.signalReady();\r\n }\r\n\r\n setLineWidth(width) {\r\n this.line.setLineWidth(width);\r\n this.signalReady();\r\n }\r\n\r\n updateColor(color) \r\n {\r\n this.line.color = color;\r\n this.color = color;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { POINTER_CLASSES } from \"../../config/config\";\r\nimport { isInBoundsBox, sidesFlag, sidesAndCorners, sideCornerDetails, getArcPosition } from \"../geometry\";\r\nimport { boxSize, setLineStyle, drawEllipse } from \"../canvasUtils\";\r\n\r\n\r\nexport default class Ellipse extends InteractiveAnnotation {\r\n constructor(position, options, radius = 100) {\r\n super(position, options);\r\n\r\n this.centerX = position.x;\r\n this.centerY = position.y;\r\n this.radiusX = radius;\r\n this.radiusY = radius;\r\n\r\n this.activeBody = true;\r\n // active sides ORs the sidesFlag flag to represent selection of a side or corner\r\n this.activeSides = 0;\r\n }\r\n\r\n get isActive() {\r\n return this.activeBody || this.activeSides;\r\n }\r\n\r\n get area() {\r\n return Math.PI * this.radiusX * this.radiusY;\r\n }\r\n\r\n get rx2() { return this.radiusX * this.radiusX; }\r\n get ry2() { return this.radiusY * this.radiusY; }\r\n\r\n draw(ctx) {\r\n setLineStyle(ctx, this);\r\n\r\n ctx.beginPath();\r\n drawEllipse(ctx, this.centerX, this.centerY, this.radiusX, this.radiusY);\r\n ctx.closePath();\r\n ctx.stroke();\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isOnEllipse(x, y) || this.getHoveredBox(x, y);\r\n }\r\n\r\n isWithinEllipse(x, y){\r\n let dx = x - this.centerX;\r\n let dy = y - this.centerY;\r\n let scaledDx = dx * dx / this.rx2;\r\n let scaledDy = dy * dy / this.ry2;\r\n return scaledDx + scaledDy < 1;\r\n }\r\n\r\n isOnEllipse(x, y) {\r\n let dx = x - this.centerX;\r\n let dy = y - this.centerY;\r\n\r\n let angle = -Math.atan2(dy, dx) + Math.PI / 2;\r\n let pos = this.getAngularPosition(angle);\r\n\r\n let diffX = Math.abs(x - pos.x);\r\n let diffY = Math.abs(y - pos.y);\r\n\r\n return diffX <= boxSize && diffY <= boxSize;\r\n }\r\n\r\n // returns the position on the edge of the ellipse that is passed through by a\r\n // line with the given angle that passes through the origin\r\n getAngularPosition(theta){\r\n let tan = Math.tan(theta);\r\n let tan2 = tan * tan;\r\n let denominator = Math.sqrt(this.rx2 + this.ry2 * tan2);\r\n\r\n let adjustmentX = this.radiusX * this.radiusY * tan / denominator;\r\n let adjustmentY = this.radiusX * this.radiusY / denominator;\r\n\r\n let signAdjust = Math.abs(theta) < (Math.PI / 2) ? 1 : -1;\r\n return {x: this.centerX + adjustmentX * signAdjust, y: this.centerY + adjustmentY * signAdjust};\r\n }\r\n\r\n\r\n getInteractionPoints() {\r\n return sidesAndCorners.map(flag => this.getSideCornerPosition(flag));\r\n }\r\n\r\n getHoveredBox(x, y) {\r\n for (let i = 0; i < sidesAndCorners.length; i++) {\r\n const flag = sidesAndCorners[i];\r\n const details = sideCornerDetails[flag];\r\n const pos = this.getArcPosition(details.theta);\r\n if (isInBoundsBox(x, y, pos.x, pos.y, this.transform.zoom)) return details;\r\n }\r\n return null;\r\n }\r\n\r\n getSideCornerPosition(flag) {\r\n const details = sideCornerDetails[flag];\r\n return this.getArcPosition(details.theta);\r\n }\r\n\r\n // returns the position on the edge of the ellipse that is arced through by the given angle\r\n // note - this does not equal the angular position!\r\n getArcPosition(theta) {\r\n return getArcPosition(this.centerX, this.centerY, this.radiusX, this.radiusY, theta);\r\n }\r\n\r\n getHoverClass(x, y) {\r\n let box = this.getHoveredBox(x, y);\r\n if (box) return box.hoverClass;\r\n return POINTER_CLASSES.pointer;\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n let box = this.getHoveredBox(x, y);\r\n this.activeSides = box && box.side;\r\n this.activeBody = !box;\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.activeBody) this.updateBody(x, y);\r\n else if (this.activeSides) this.updateSides(x, y);\r\n }\r\n\r\n updateBody(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n this.centerX += dx;\r\n this.centerY += dy;\r\n }\r\n\r\n updateSides(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n\r\n let top = this.activeSides & sidesFlag.top;\r\n let bottom = this.activeSides & sidesFlag.bottom;\r\n let left = this.activeSides & sidesFlag.left;\r\n let right = this.activeSides & sidesFlag.right;\r\n let corner = (top | bottom) && (left | right);\r\n const cornerAdjust = corner ? 1.17 : 1; // not sure how this constant is derived\r\n\r\n let moveY = top || bottom ? 1 : 0;\r\n let increaseY = top ? -1 : 1;\r\n this.centerY += cornerAdjust * moveY * dy / 2;\r\n this.radiusY += cornerAdjust * moveY * increaseY * dy / 2;\r\n if (this.radiusY <= 0) this.flipY();\r\n \r\n let moveX = left || right ? 1 : 0;\r\n let increaseX = left ? -1 : 1;\r\n this.centerX += cornerAdjust * moveX * dx / 2;\r\n this.radiusX += cornerAdjust * moveX * increaseX * dx / 2;\r\n if (this.radiusX <= 0) this.flipX();\r\n }\r\n\r\n flipY() {\r\n this.radiusY *= -1;\r\n\r\n if (this.activeSides & sidesFlag.top) {\r\n // if updating top, set updatingBottom to true\r\n this.activeSides &= ~sidesFlag.top;\r\n this.activeSides |= sidesFlag.bottom;\r\n } else {\r\n this.activeSides &= ~sidesFlag.bottom;\r\n this.activeSides |= sidesFlag.top;\r\n }\r\n }\r\n\r\n flipX() {\r\n this.radiusX *= -1;\r\n\r\n if (this.activeSides & sidesFlag.right) {\r\n // set updatingleft to true\r\n this.activeSides &= ~sidesFlag.right;\r\n this.activeSides |= sidesFlag.left;\r\n } else {\r\n // set updatingRight to true\r\n this.activeSides &= ~sidesFlag.left;\r\n this.activeSides |= sidesFlag.right;\r\n }\r\n }\r\n\r\n deactivate(){\r\n this.activeBody = false;\r\n this.activeSides = 0;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport Ellipse from \"./ellipse\";\r\nimport { drawBoxes, measureText, setFontStyle } from \"../canvasUtils\";\r\nimport MeasurementText from \"./measurementText\";\r\n\r\nexport default class Area extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.ellipse = new Ellipse(position, options);\r\n this.measurementText = new MeasurementText();\r\n this.textActive = false;\r\n }\r\n\r\n get textPosition(){\r\n let x = this.ellipse.centerX + (this.ellipse.radiusX + 15) * Math.cos(Math.PI / 4);\r\n let y = this.ellipse.centerY + (this.ellipse.radiusY + 15) * Math.sin(Math.PI / 4);\r\n return {x, y};\r\n }\r\n\r\n get text(){\r\n let area = this.ellipse.area * this.scale * this.scale;\r\n return area.toFixed(2) + \" mm²\";\r\n }\r\n\r\n get textWidth(){\r\n return measureText(this.text, this.font);\r\n }\r\n\r\n draw(ctx) {\r\n this.ellipse.draw(ctx);\r\n this.drawText(ctx);\r\n if (this.ellipse.isActive) drawBoxes(ctx, this.ellipse.getInteractionPoints(), this.transform.zoom);\r\n if (this.textActive) this.measurementText.drawTextInteractionBoxe(ctx);\r\n }\r\n\r\n drawText(ctx){\r\n setFontStyle(ctx, this);\r\n this.measurementText.updateAndDraw(this.textWidth, this.textSize, ctx, this.text, this.textPosition.x, this.textPosition.y);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.ellipse.isInBounds(x, y) || this.measurementText.isInBound(x, y);\r\n }\r\n\r\n getHoverClass(x, y){\r\n return this.ellipse.getHoverClass(x, y);\r\n }\r\n\r\n mousedown(x, y){\r\n if(this.measurementText.isInBound(x, y)) this.textActive = true;\r\n else this.ellipse.mousedown(x, y);\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y){\r\n if(this.textActive) this.measurementText.updateLocation(x, y);\r\n else this.ellipse.mousemove(x, y);\r\n this.signalReady();\r\n }\r\n\r\n deactivate(){\r\n this.textActive = false;\r\n this.ellipse.deactivate();\r\n this.signalReady();\r\n }\r\n\r\n setLineWidth(width) {\r\n this.ellipse.setLineWidth(width);\r\n this.signalReady();\r\n }\r\n\r\n updateColor(color) \r\n {\r\n this.ellipse.color = color;\r\n this.color = color;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport Ellipse from \"./ellipse\";\r\nimport { drawBoxes, measureText, setFontStyle, setLineStyle } from \"../canvasUtils\";\r\nimport MeasurementText from \"./measurementText\";\r\n\r\nexport default class CupToDisc extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.innerEllipse = new Ellipse(position, options);\r\n this.outerEllipse = new Ellipse(position, options, 300);\r\n\r\n this.measurementTexts = {\r\n horCupDisc: new MeasurementText(),\r\n verCupDisc: new MeasurementText(),\r\n cupArea: new MeasurementText(),\r\n discArea: new MeasurementText()\r\n } \r\n this.activeText = false;\r\n }\r\n\r\n get isActive() {\r\n return this.innerEllipse.isActive || this.outerEllipse.isActive || !!this.activeText;\r\n }\r\n\r\n get horCupDiscText() {\r\n let fraction = this.innerEllipse.radiusX / this.outerEllipse.radiusX;\r\n return fraction.toFixed(2) + \" Hor. Cup/Disc\";\r\n }\r\n\r\n get verCupDiscText() {\r\n let fraction = this.innerEllipse.radiusY / this.outerEllipse.radiusY;\r\n return fraction.toFixed(2) + \" Ver. Cup/Disc\";\r\n }\r\n\r\n get cupDiscTextPosition() {\r\n let x = this.outerEllipse.centerX + this.outerEllipse.radiusX + 15;\r\n let y = this.outerEllipse.centerY - 25;\r\n return { x, y };\r\n }\r\n\r\n get horTextWidth(){\r\n return measureText(this.horCupDiscText, this.font);\r\n }\r\n\r\n get verTextWidth(){\r\n return measureText(this.verCupDiscText, this.font);\r\n }\r\n\r\n get cupDiscTextWidth() {\r\n return Math.max(this.horTextWidth, this.verTextWidth);\r\n }\r\n\r\n get cupAreaText() {\r\n let area = this.innerEllipse.area * this.scale * this.scale;\r\n return \"Cup Area: \" + area.toFixed(2) + \" mm²\";\r\n }\r\n\r\n get discAreaText() {\r\n let area = this.outerEllipse.area * this.scale * this.scale;\r\n return \"Disc Area: \" + area.toFixed(2) + \" mm²\";\r\n }\r\n\r\n get cupTextWidth(){\r\n return measureText(this.cupAreaText, this.font);\r\n }\r\n\r\n get discTextWidth(){\r\n return measureText(this.discAreaText, this.font);\r\n }\r\n\r\n get areaTextWidth() {\r\n return Math.max(this.cupTextWidth, this.discTextWidth);\r\n } \r\n\r\n get areaTextPosition() {\r\n let x = this.outerEllipse.centerX - this.areaTextWidth / 2;\r\n let y = this.outerEllipse.centerY + this.outerEllipse.radiusY + 15;\r\n return { x, y };\r\n }\r\n\r\n get isTextActive() {\r\n return !!this.activeText;\r\n }\r\n\r\n draw(ctx) {\r\n setLineStyle(ctx, this);\r\n this.innerEllipse.draw(ctx);\r\n this.outerEllipse.draw(ctx);\r\n this.drawText(ctx);\r\n if(this.isTextActive) this.drawTextInteractionBoxes(ctx) \r\n if (this.innerEllipse.isActive) drawBoxes(ctx, this.innerEllipse.getInteractionPoints(), this.innerEllipse.transform.zoom);\r\n if (this.outerEllipse.isActive) drawBoxes(ctx, this.outerEllipse.getInteractionPoints(), this.outerEllipse.transform.zoom);\r\n }\r\n\r\n drawText(ctx){\r\n setFontStyle(ctx, this);\r\n\r\n let position = this.cupDiscTextPosition; \r\n this.measurementTexts.horCupDisc.updateAndDraw(this.horTextWidth, this.textSize, ctx, this.horCupDiscText, position.x, position.y);\r\n this.measurementTexts.verCupDisc.updateAndDraw(this.verTextWidth, this.textSize, ctx, this.verCupDiscText, position.x, position.y + this.textSize);\r\n\r\n position = this.areaTextPosition; \r\n this.measurementTexts.cupArea.updateAndDraw(this.cupTextWidth, this.textSize, ctx, this.cupAreaText, position.x, position.y);\r\n this.measurementTexts.discArea.updateAndDraw(this.discTextWidth, this.textSize, ctx, this.discAreaText, position.x, position.y + this.textSize);\r\n }\r\n\r\n drawTextInteractionBoxes(ctx){ \r\n this.measurementTexts[this.activeText].drawTextInteractionBoxe(ctx);\r\n }\r\n\r\n updateTextLocation(x, y){\r\n this.measurementTexts[this.activeText].updateLocation(x, y)\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.innerEllipse.isInBounds(x, y) \r\n || this.outerEllipse.isInBounds(x, y)\r\n || this.isInBoundsAllTexts(x, y);\r\n }\r\n\r\n isInBoundsAllTexts(x, y) {\r\n return this.measurementTexts.horCupDisc.isInBound(x, y)\r\n || this.measurementTexts.verCupDisc.isInBound(x, y)\r\n || this.measurementTexts.cupArea.isInBound(x, y)\r\n || this.measurementTexts.discArea.isInBound(x, y)\r\n }\r\n\r\n getHoverClass(x, y) {\r\n return this.innerEllipse.getHoverClass(x, y) || this.outerEllipse.getHoverClass(x, y);\r\n }\r\n\r\n mousedown(x, y) {\r\n this.deactivate();\r\n\r\n if (this.innerEllipse.isInBounds(x, y))\r\n this.innerEllipse.mousedown(x, y);\r\n else if (this.outerEllipse.getHoveredBox(x, y))\r\n this.outerEllipse.mousedown(x, y);\r\n else if(this.measurementTexts.horCupDisc.isInBound(x, y))\r\n this.activeText = \"horCupDisc\";\r\n else if(this.measurementTexts.verCupDisc.isInBound(x, y))\r\n this.activeText = \"verCupDisc\";\r\n else if(this.measurementTexts.cupArea.isInBound(x, y))\r\n this.activeText = \"cupArea\";\r\n else if(this.measurementTexts.discArea.isInBound(x, y))\r\n this.activeText = \"discArea\";\r\n else {\r\n this.innerEllipse.mousedown(x, y);\r\n this.outerEllipse.mousedown(x, y);\r\n }\r\n\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n let oldInner = this.getEllipseState(this.innerEllipse);\r\n let oldOuter = this.getEllipseState(this.outerEllipse);\r\n\r\n if (this.activeText) this.updateTextLocation(x, y);\r\n else{\r\n if (this.innerEllipse.isActive) this.innerEllipse.mousemove(x, y);\r\n if (this.outerEllipse.isActive) this.outerEllipse.mousemove(x, y);\r\n }\r\n\r\n if (this.ellipseIntersection()) {\r\n this.restoreEllipseState(this.innerEllipse, oldInner);\r\n this.restoreEllipseState(this.outerEllipse, oldOuter);\r\n }\r\n\r\n this.signalReady();\r\n }\r\n\r\n getEllipseState(ellipse) {\r\n return {\r\n centerX: ellipse.centerX,\r\n centerY: ellipse.centerY,\r\n radiusX: ellipse.radiusX,\r\n radiusY: ellipse.radiusY\r\n };\r\n }\r\n\r\n ellipseIntersection() {\r\n let angle = -Math.PI;\r\n let step = Math.PI / 64;\r\n while (angle <= Math.PI) {\r\n let pos = this.innerEllipse.getArcPosition(angle);\r\n if (!this.outerEllipse.isWithinEllipse(pos.x, pos.y)) return true;\r\n angle += step;\r\n }\r\n return false;\r\n }\r\n\r\n restoreEllipseState(ellipse, oldState) {\r\n ellipse.centerX = oldState.centerX;\r\n ellipse.centerY = oldState.centerY;\r\n ellipse.radiusX = oldState.radiusX;\r\n ellipse.radiusY = oldState.radiusY;\r\n }\r\n\r\n deactivate() {\r\n this.innerEllipse.deactivate();\r\n this.outerEllipse.deactivate();\r\n this.activeText = null;\r\n this.signalReady();\r\n }\r\n \r\n setParentTransform(obj) {\r\n this.innerEllipse.setParentTransform(obj);\r\n this.outerEllipse.setParentTransform(obj);\r\n this.signalReady();\r\n }\r\n\r\n setLineWidth(width) {\r\n this.innerEllipse.setLineWidth(width);\r\n this.outerEllipse.setLineWidth(width);\r\n this.signalReady();\r\n }\r\n\r\n updateColor(color) \r\n {\r\n this.innerEllipse.color = color;\r\n this.outerEllipse.color = color;\r\n this.color = color;\r\n }\r\n}","import SegmentChain from \"./segmentChain\";\r\nimport { findIntersectionLastSegment, findIntersectionClosingSegment, polygonArea } from \"../geometry\";\r\n\r\nexport default class SegmentChainArea extends SegmentChain {\r\n constructor(position, options){\r\n super(position, options);\r\n\r\n this.closed = false;\r\n this.area = 0;\r\n }\r\n\r\n mousemove(x, y){\r\n let numPoints = this.points.length;\r\n super.mousemove(x, y);\r\n if (this.points.length != numPoints) this.checkForIntersection();\r\n }\r\n\r\n mouseup(){\r\n super.mouseup();\r\n if (!this.closed) this.closeChain();\r\n }\r\n\r\n checkForIntersection(){\r\n let {index, intersect} = findIntersectionLastSegment(this.points);\r\n this.truncateIntersectionIfFound(index, intersect);\r\n }\r\n\r\n closeChain() {\r\n let {index, intersect} = findIntersectionClosingSegment(this.points);\r\n this.truncateIntersectionIfFound(index, intersect);\r\n if (!intersect) this.setClosedPoint(this.points[0]);\r\n }\r\n\r\n truncateIntersectionIfFound(index, intersect) {\r\n if (intersect && index >= 0) {\r\n if (index > 0) this.points = this.points.slice(index);\r\n // pop the last point to replace it with the intersect\r\n // this avoids weird little stubby bits if the last segment was long\r\n this.points.pop();\r\n this.setClosedPoint(intersect);\r\n }\r\n }\r\n\r\n setClosedPoint(point){\r\n this.points[0] = Object.assign({}, point);\r\n this.points.push(Object.assign({}, point));\r\n this.recalculateBounds();\r\n this.area = polygonArea(this.points);\r\n this.drawingInitialLine = false;\r\n this.closed = true;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { measureText, setFontStyle } from \"../canvasUtils\";\r\nimport SegmentChainArea from \"./segmentChainArea\";\r\nimport MeasurementText from \"./measurementText\";\r\n\r\nexport default class FreeHandArea extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n this.chain = new SegmentChainArea(position, options);\r\n this.measurementText = new MeasurementText();\r\n this.textActive = false;\r\n }\r\n\r\n get text() {\r\n let scaled = this.chain.area * this.scale * this.scale;\r\n return scaled.toFixed(2) + \" mm²\";\r\n }\r\n\r\n get textPosition() {\r\n let min = this.chain.min;\r\n let max = this.chain.max;\r\n let x = (min.x + max.x - this.textWidth) / 2;\r\n let y = max.y;\r\n return {x, y};\r\n }\r\n\r\n get textWidth(){\r\n return measureText(this.text, this.font);\r\n }\r\n\r\n draw(ctx) {\r\n this.chain.draw(ctx);\r\n if (this.chain.active && !this.chain.drawingInitialLine) this.chain.drawBoundingBox(ctx);\r\n if (this.chain.closed) {\r\n this.drawText(ctx);\r\n if (this.textActive) this.measurementText.drawTextInteractionBoxe(ctx)\r\n }\r\n }\r\n\r\n drawText(ctx){\r\n setFontStyle(ctx, this);\r\n this.measurementText.updateAndDraw(this.textWidth, this.textSize, ctx, this.text, this.textPosition.x, this.textPosition.y);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.chain.isOnLines(x, y) || this.isInBoundsText(x, y);\r\n }\r\n\r\n isInBoundsText(x, y){\r\n return this.measurementText.isInBound(x, y)\r\n }\r\n\r\n mousedown(x, y) {\r\n if(this.measurementText.isInBound(x, y)) this.textActive = true;\r\n else this.chain.mousedown(x, y);\r\n \r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n if(this.textActive) this.measurementText.updateLocation(x, y);\r\n else this.chain.mousemove(x, y);\r\n \r\n this.signalReady();\r\n }\r\n\r\n mouseup() {\r\n this.chain.mouseup();\r\n this.signalReady();\r\n }\r\n\r\n deactivate() {\r\n this.chain.deactivate();\r\n this.clearActiveStates();\r\n this.signalReady();\r\n }\r\n clearActiveStates(){\r\n this.textActive = false;\r\n }\r\n \r\n setLineWidth(width) {\r\n this.chain.setLineWidth(width);\r\n this.signalReady();\r\n }\r\n\r\n updateColor(color) \r\n {\r\n this.chain.color = color;\r\n this.color = color;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { setLineStyle, boxSize, measureText, setFontStyle } from \"../canvasUtils\";\r\nimport { getArcPosition } from \"../geometry\";\r\n\r\nexport default class Circle extends InteractiveAnnotation {\r\n constructor(x, y, radius, text, options) {\r\n super({x, y}, options);\r\n this.centerX = x;\r\n this.centerY = y;\r\n this.radius = radius;\r\n\r\n this.text = text;\r\n this.textOffset = text && measureText(this.text) / 2;\r\n \r\n this.isActive = false;\r\n }\r\n\r\n draw(ctx) {\r\n this.drawCircle(ctx);\r\n\r\n if (this.text) this.drawText(ctx);\r\n }\r\n\r\n drawCircle(ctx){\r\n setLineStyle(ctx, this);\r\n ctx.beginPath();\r\n ctx.arc(this.centerX, this.centerY, this.radius, 0, 2 * Math.PI);\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n drawText(ctx){\r\n setFontStyle(ctx, this);\r\n ctx.fillText(this.text, this.centerX - this.textOffset, this.centerY - this.radius - this.textSize);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isOnCircle(x, y) || (this.text && this.isInBoundsText(x, y));\r\n }\r\n\r\n isInBoundsText(x, y){\r\n return x >= this.centerX - this.textOffset && x <= this.centerX + this.textOffset * 2\r\n && y >= this.centerY - this.radius - 30 && y <= this.centerY - this.radius;\r\n }\r\n\r\n isOnCircle(x, y){\r\n let dx = x - this.centerX;\r\n let dy = y - this.centerY;\r\n let angle = Math.atan2(dy, dx);\r\n let pos = getArcPosition(this.centerX, this.centerY, this.radius, this.radius, angle);\r\n let diffX = Math.abs(x - pos.x);\r\n let diffY = Math.abs(y - pos.y);\r\n return diffX <= boxSize && diffY <= boxSize;\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n this.isActive = true;\r\n }\r\n\r\n mousemove(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n this.centerX += dx;\r\n this.centerY += dy;\r\n }\r\n\r\n deactivate() {\r\n this.isActive = false;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { measureText, setBoxStyle } from \"../canvasUtils\";\r\nimport Circle from \"./circle\";\r\n\r\nexport default class CircleCollection extends InteractiveAnnotation {\r\n constructor(position, circleDefs, options) {\r\n super(position, options);\r\n\r\n let widestText = 0;\r\n let smallestRadius = Number.MAX_SAFE_INTEGER;\r\n let maxRadius = 0;\r\n let totalWidth = 0;\r\n for (let i = 0; i < circleDefs.length; i++) {\r\n let def = circleDefs[i];\r\n def.radius /= (2000 * this.scale);\r\n widestText = Math.max(measureText(def.text), widestText);\r\n smallestRadius = Math.min(def.radius, smallestRadius);\r\n maxRadius = Math.max(def.radius, maxRadius);\r\n totalWidth += def.radius * 2;\r\n }\r\n\r\n let circleSpacing = 25;\r\n if (widestText > smallestRadius)\r\n circleSpacing += (widestText - smallestRadius) / 2;\r\n\r\n this.circles = circleDefs.map((d, i) => {\r\n let xAdjustment = 0;\r\n if (i > 0) xAdjustment += circleDefs[0].radius + d.radius + i * circleSpacing;\r\n for (let j = 1; j < i; j++) xAdjustment += 2 * circleDefs[j].radius;\r\n return new Circle(position.x + xAdjustment, position.y + d.radius, d.radius, d.text, options);\r\n });\r\n\r\n this.circles.forEach(c => { \r\n c.textSize = options.textSize;\r\n c.font = options.textSize + \"px Calibri\";\r\n });\r\n\r\n totalWidth += circleSpacing * (this.circles.length - 1);\r\n this.totalWidth = totalWidth;\r\n this.totalHeight = 30 + 2 * maxRadius;\r\n }\r\n\r\n draw(ctx) {\r\n this.circles.forEach(c => c.draw(ctx));\r\n if (this.circles.some(c => c.isActive)){\r\n setBoxStyle(ctx);\r\n ctx.beginPath();\r\n let circle = this.circles[0];\r\n ctx.strokeRect(circle.centerX - circle.radius - 10, \r\n circle.centerY - circle.radius - 30 - 10, \r\n this.totalWidth + 20, this.totalHeight + 20);\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n isInBounds(x, y) { return this.circles.some(c => c.isInBounds(x, y)); }\r\n\r\n mousedown(x, y) {\r\n this.deactivate();\r\n this.circles.forEach(c => c.mousedown(x, y));\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n this.circles.forEach(c => c.mousemove(x, y));\r\n this.signalReady();\r\n }\r\n\r\n deactivate(x, y) {\r\n this.circles.forEach(c => c.deactivate(x, y));\r\n this.signalReady();\r\n }\r\n\r\n setLineWidth(width) {\r\n this.circles.forEach(c => c.setLineWidth(width));\r\n this.signalReady();\r\n }\r\n\r\n updateTextSize(size) {\r\n this.circles.forEach(c => c.updateTextSize(size));\r\n this.signalReady();\r\n }\r\n\r\n updateColor(color) {\r\n this.circles.forEach(c => c.color = color);\r\n this.signalReady();\r\n }\r\n}","import CircleCollection from \"./circleCollection\";\r\n\r\nexport default class StandardCircles1 extends CircleCollection {\r\n constructor(position, options) {\r\n let circleDefs = [\r\n { radius: 63, text: \"C0\" },\r\n { radius: 125, text: \"C1\" },\r\n { radius: 175, text: \"C2\" }\r\n ];\r\n super(position, circleDefs, options);\r\n }\r\n}\r\n","import CircleCollection from \"./circleCollection\";\r\n\r\nexport default class StandardCircles2 extends CircleCollection {\r\n constructor(position, options) {\r\n let circleDefs = [\r\n { radius: 250, text: \"C3\" },\r\n { radius: 500, text: \"C4\" }\r\n ];\r\n super(position, circleDefs, options);\r\n }\r\n}\r\n","import CircleCollection from \"./circleCollection\";\r\n\r\nexport default class DrusenCircles1 extends CircleCollection {\r\n constructor(position, options) {\r\n let circleDefs = [\r\n { radius: 76, text: \"C-0\" },\r\n { radius: 150, text: \"C-1\" },\r\n { radius: 300, text: \"C-2\" }\r\n ];\r\n super(position, circleDefs, options);\r\n }\r\n}\r\n","import CircleCollection from \"./circleCollection\";\r\n\r\nexport default class DrusenCircles2 extends CircleCollection {\r\n constructor(position, options) {\r\n let circleDefs = [\r\n { radius: 425, text: \"I-2\" },\r\n { radius: 783, text: \"O-2\" }\r\n ];\r\n super(position, circleDefs, options);\r\n }\r\n}\r\n","import CircleCollection from \"./circleCollection\";\r\n\r\nexport default class DrusenCircles3 extends CircleCollection {\r\n constructor(position, options) {\r\n let circleDefs = [{ radius: 1273, text: \"½ DA\" }];\r\n super(position, circleDefs, options);\r\n }\r\n}\r\n","import CircleCollection from \"./circleCollection\";\r\n\r\nexport default class DrusenCircles4 extends CircleCollection {\r\n constructor(position, options) {\r\n let circleDefs = [{ radius: 1800, text: \"1 DA\" }];\r\n super(position, circleDefs, options);\r\n }\r\n}\r\n","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport SegmentChainArea from \"./segmentChainArea\";\r\nimport { segmentLengthPoints } from \"../geometry\";\r\nimport Line from \"./line\";\r\nimport Circle from \"./circle\";\r\nimport { measureText, setFontStyle } from \"../canvasUtils\";\r\nimport MeasurementText from \"./measurementText\";\r\nexport default class PDT extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n this.chain = new SegmentChainArea(position, options);\r\n\r\n this.pdtReady = false;\r\n this.spot = null;\r\n this.gld = null;\r\n\r\n this.activeText = false;\r\n\r\n this.measurementTexts = {\r\n area: new MeasurementText(),\r\n gld: new MeasurementText(),\r\n spot: new MeasurementText()\r\n } \r\n }\r\n get isTextActive() {\r\n return !!this.activeText;\r\n }\r\n\r\n get areaText() {\r\n let scaled = this.chain.area * this.scale * this.scale;\r\n return scaled.toFixed(2) + \" mm² Area\";\r\n }\r\n\r\n get gldText() {\r\n let length = this.gld.length * this.scale;\r\n return length.toFixed(2) + \" mm GLD\";\r\n }\r\n\r\n get spotText() {\r\n let length = 2 * this.spot.radius * this.scale;\r\n return length.toFixed(2) + \" mm Spot\";\r\n }\r\n\r\n get areaTextWidth(){\r\n return measureText(this.areaText, this.font);\r\n }\r\n\r\n get gldTextWidth(){\r\n return measureText(this.gldText, this.font);\r\n }\r\n\r\n get spotTextWidth(){\r\n return measureText(this.spotText, this.font);\r\n }\r\n\r\n get textWidth() {\r\n return Math.max(this.areaTextWidth, this.spotTextWidth, this.spotTextWidth);\r\n }\r\n\r\n get textPosition() {\r\n let x = this.spot.centerX - this.textWidth / 2;\r\n let y = this.spot.centerY + this.spot.radius + 15;\r\n return { x, y };\r\n }\r\n\r\n draw(ctx) {\r\n this.chain.draw(ctx);\r\n\r\n if (this.pdtReady) {\r\n ctx.setLineDash([15, 15]);\r\n this.gld.draw(ctx);\r\n this.spot.draw(ctx);\r\n ctx.setLineDash([]);\r\n this.drawText(ctx);\r\n if(this.isTextActive) this.drawTextInteractionBoxes(ctx) \r\n }\r\n }\r\n drawText(ctx) {\r\n setFontStyle(ctx, this);\r\n let pos = this.textPosition;\r\n this.measurementTexts.area.updateAndDraw(this.areaTextWidth, this.textSize, ctx, this.areaText, pos.x, pos.y);\r\n this.measurementTexts.gld.updateAndDraw(this.gldTextWidth, this.textSize, ctx, this.gldText, pos.x, pos.y + this.textSize);\r\n this.measurementTexts.spot.updateAndDraw(this.spotTextWidth, this.textSize, ctx, this.spotText, pos.x, pos.y + this.textSize * 2);\r\n }\r\n\r\n drawTextInteractionBoxes(ctx){ \r\n this.measurementTexts[this.activeText].drawTextInteractionBoxe(ctx);\r\n }\r\n\r\n updateTextLocation(x, y){\r\n this.measurementTexts[this.activeText].updateLocation(x, y)\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.chain.isInBounds(x, y)\r\n || (this.pdtReady && (\r\n this.isInBoundsText(x, y)\r\n || this.spot.isInBounds(x, y)\r\n || this.gld.isInBounds(x, y)\r\n ));\r\n }\r\n\r\n isInBoundsText(x, y) {\r\n return this.measurementTexts.area.isInBound(x, y)\r\n || this.measurementTexts.gld.isInBound(x, y)\r\n || this.measurementTexts.spot.isInBound(x, y);\r\n }\r\n\r\n mousedown(x, y) {\r\n if (this.measurementTexts.area.isInBound(x, y))\r\n this.activeText = \"area\";\r\n else if (this.measurementTexts.gld.isInBound(x, y))\r\n this.activeText = \"gld\";\r\n else if (this.measurementTexts.spot.isInBound(x, y))\r\n this.activeText = \"spot\";\r\n else{\r\n this.chain.mousedown(x, y);\r\n if (this.pdtReady) {\r\n this.spot.mousedown(x, y);\r\n this.gld.mousedown(x, y);\r\n }\r\n } \r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.activeText) this.updateTextLocation(x, y)\r\n else{\r\n this.chain.mousemove(x, y);\r\n if (this.pdtReady) {\r\n this.spot.mousemove(x, y);\r\n this.gld.mousemove(x, y);\r\n }\r\n } \r\n this.signalReady();\r\n }\r\n\r\n mouseup(x, y) {\r\n this.chain.mouseup(x, y);\r\n if (this.pdtReady) {\r\n this.spot.mouseup(x, y);\r\n this.gld.mouseup(x, y);\r\n } else {\r\n this.gld = this.generateGLD();\r\n this.spot = this.generateSpot();\r\n this.pdtReady = true;\r\n }\r\n this.signalReady();\r\n }\r\n\r\n generateGLD() {\r\n let points = this.chain.points;\r\n let maxDistance = 0;\r\n let p1 = null;\r\n let p2 = null;\r\n for (let i = 0; i < points.length - 1; i++) {\r\n let pi = points[i]\r\n for (let j = 1; j < points.length; j++) {\r\n let pj = points[j];\r\n let distance = segmentLengthPoints(pi, pj);\r\n if (distance > maxDistance) {\r\n maxDistance = distance;\r\n p1 = pi;\r\n p2 = pj;\r\n }\r\n }\r\n }\r\n let line = new Line(p1, this.color);\r\n line.setTail(p2.x, p2.y);\r\n line.fixedDimensions = true;\r\n return line;\r\n }\r\n\r\n generateSpot() {\r\n let oneMM = 1 / this.scale;\r\n let centerX = (this.gld.headX + this.gld.tailX) / 2;\r\n let centerY = (this.gld.headY + this.gld.tailY) / 2;\r\n let radius = (oneMM + this.gld.length) / 2;\r\n let circle = new Circle(centerX, centerY, radius, null, this.color);\r\n return circle;\r\n }\r\n\r\n deactivate(x, y) {\r\n this.activeText = null;\r\n this.chain.deactivate(x, y);\r\n if (this.pdtReady) {\r\n this.spot.deactivate(x, y);\r\n this.gld.deactivate(x, y);\r\n }\r\n this.signalReady();\r\n }\r\n\r\n setLineWidth(width) {\r\n this.chain.setLineWidth(width);\r\n this.gld.setLineWidth(width);\r\n this.spot.setLineWidth(width);\r\n this.signalReady();\r\n }\r\n\r\n\r\n updateColor(color) \r\n {\r\n this.chain.color = color;\r\n this.signalReady();\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { drawEllipse, setLineStyle, setBoxStyle, drawBox, boxSize } from \"../canvasUtils\";\r\nimport { getArcPosition, isInBoundsBox, isInBoundsLine } from \"../geometry\";\r\nimport Ellipse from \"./ellipse\";\r\n\r\nexport default class ETDRSGrid extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.centerX = position.x;\r\n this.centerY = position.y;\r\n\r\n this.color = options.color || \"#2ECE2E\";\r\n\r\n this.circles = [null, null, null];\r\n\r\n this.lines = [\r\n {\r\n direction: \"se\",\r\n angle: Math.PI / 4,\r\n inner: null,\r\n outer: null\r\n },\r\n {\r\n direction: \"ne\",\r\n angle: -Math.PI / 4,\r\n inner: null,\r\n outer: null\r\n },\r\n {\r\n direction: \"s\",\r\n angle: Math.PI / 2,\r\n inner: null,\r\n outer: null\r\n },\r\n {\r\n direction: \"n\",\r\n angle: -Math.PI / 2,\r\n inner: null,\r\n outer: null\r\n },\r\n {\r\n direction: \"sw\",\r\n angle: 3 * Math.PI / 4,\r\n inner: null,\r\n outer: null\r\n },\r\n {\r\n direction: \"nw\",\r\n angle: -3 * Math.PI / 4,\r\n inner: null,\r\n outer: null\r\n },\r\n {\r\n direction: \"e\",\r\n angle: 0,\r\n inner: null,\r\n outer: null\r\n },\r\n {\r\n direction: \"w\",\r\n angle: Math.PI,\r\n inner: null,\r\n outer: null\r\n }\r\n ];\r\n this.canvasSize = null;\r\n this.width = null;\r\n this.height = null;\r\n this.radius = null;\r\n this.circleRadius = 3 / this.scale;\r\n\r\n this.activeBox = false;\r\n this.initialMousePos = null;\r\n this.sizeSnapshop = null;\r\n this.circleSnapshop = null;\r\n this.isActive = false;\r\n }\r\n\r\n get topLeft() {\r\n return { x: this.centerX - this.radius, y: this.centerY - this.radius, side: \"TL\", location: \"O\"};\r\n }\r\n\r\n get topRight() {\r\n return { x: this.centerX + this.radius, y: this.centerY - this.radius, side: \"TR\", location: \"O\"};\r\n }\r\n\r\n get bottomLeft() {\r\n return { x: this.centerX - this.radius, y: this.centerY + this.radius, side: \"BL\", location: \"O\"};\r\n }\r\n\r\n get bottomRight() {\r\n return { x: this.centerX + this.radius, y: this.centerY + this.radius, side: \"BR\", location: \"O\"};\r\n }\r\n\r\n get innerTopLeft() {\r\n return { x: this.centerX - this.radius / 2.75, y: this.centerY - this.radius / 2.75, side: \"TL\", location: \"I\"};\r\n }\r\n\r\n get innerTopRight() {\r\n return { x: this.centerX + this.radius / 2.75, y: this.centerY - this.radius / 2.75, side: \"TR\", location: \"I\"};\r\n }\r\n\r\n get innerBottomLeft() {\r\n return { x: this.centerX - this.radius / 2.75, y: this.centerY + this.radius / 2.75, side: \"BL\", location: \"I\"};\r\n }\r\n\r\n get innerBottomRight() {\r\n return { x: this.centerX + this.radius / 2.75, y: this.centerY + this.radius / 2.75, side: \"BR\", location: \"I\"};\r\n }\r\n\r\n getBoxes() {\r\n return [\r\n this.topLeft,\r\n this.topRight,\r\n this.bottomLeft, \r\n this.bottomRight,\r\n this.innerTopLeft,\r\n this.innerTopRight,\r\n this.innerBottomLeft, \r\n this.innerBottomRight\r\n ];\r\n }\r\n\r\n draw(ctx) {\r\n if(!this.canvasSize) return;\r\n\r\n let circleRadiusArray = [this.circleRadius / 6, this.circleRadius / 2, this.circleRadius];\r\n let lineLengthArray = [this.circleRadius / 6, this.circleRadius, this.circleRadius * 2];\r\n\r\n let totalLength = this.circleRadius * 4;\r\n this.radius = totalLength / 2;\r\n\r\n setLineStyle(ctx, this);\r\n\r\n this.createAndDrawEllipses(ctx, circleRadiusArray);\r\n this.createAndDrawLines(ctx, lineLengthArray);\r\n\r\n if (this.isActive){\r\n this.drawRect(ctx, this.centerX, this.centerY, this.radius, this.radius, totalLength);\r\n setBoxStyle(ctx);\r\n this.drawInteractionBoxes(ctx);\r\n }\r\n \r\n }\r\n\r\n drawEllipse(ctx, centerX, centerY, radiusX, radiusY) {\r\n ctx.beginPath();\r\n drawEllipse(ctx, centerX, centerY, radiusX, radiusY);\r\n ctx.closePath();\r\n ctx.stroke();\r\n }\r\n\r\n drawSector(ctx, start, end) {\r\n ctx.beginPath();\r\n ctx.moveTo(start.x, start.y);\r\n ctx.lineTo(end.x, end.y);\r\n ctx.closePath();\r\n ctx.stroke();\r\n }\r\n\r\n drawRect(ctx, centerX, centerY, radiusX, radiusY, totalLength) {\r\n ctx.beginPath();\r\n ctx.strokeRect(centerX - radiusX, \r\n centerY - radiusY,\r\n totalLength, totalLength);\r\n ctx.closePath();\r\n ctx.stroke();\r\n }\r\n\r\n drawInteractionBoxes(ctx) { \r\n drawBox(ctx, this.topLeft.x, this.topLeft.y, this.transform.zoom);\r\n drawBox(ctx, this.topRight.x, this.topRight.y, this.transform.zoom);\r\n drawBox(ctx, this.bottomLeft.x, this.bottomLeft.y, this.transform.zoom);\r\n drawBox(ctx, this.bottomRight.x, this.bottomRight.y, this.transform.zoom);\r\n \r\n drawBox(ctx, this.innerTopLeft.x, this.innerTopLeft.y, this.transform.zoom);\r\n drawBox(ctx, this.innerTopRight.x, this.innerTopRight.y, this.transform.zoom);\r\n drawBox(ctx, this.innerBottomLeft.x, this.innerBottomLeft.y, this.transform.zoom);\r\n drawBox(ctx, this.innerBottomRight.x, this.innerBottomRight.y, this.transform.zoom);\r\n }\r\n\r\n createAndDrawEllipses(ctx, radiusArray) {\r\n for (let i = 0; i < radiusArray.length; i++) {\r\n this.circles[i] = new Ellipse(this.centerX, this.centerY, this.color, radiusArray[i]);\r\n this.drawEllipse(ctx, this.centerX, this.centerY, radiusArray[i], radiusArray[i]);\r\n }\r\n }\r\n\r\n createAndDrawLines(ctx, locationArray) {\r\n this.lines.forEach(e => {\r\n if (e.direction.length > 1)\r\n e.inner = getArcPosition(this.centerX, this.centerY, locationArray[0], locationArray[0], e.angle);\r\n else\r\n e.inner = getArcPosition(this.centerX, this.centerY, locationArray[1], locationArray[1], e.angle);\r\n e.outer = getArcPosition(this.centerX, this.centerY, locationArray[2], locationArray[2], e.angle);\r\n this.drawSector(ctx, e.inner, e.outer);\r\n })\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isOnLines(x, y) || this.isOnCircles(x, y) ||\r\n this.isInBoundsResizeCorner(x, y);\r\n }\r\n\r\n isInBoundsResizeCorner(x, y) {\r\n return this.isInBoundsCorner(x, y, this.topLeft) \r\n || this.isInBoundsCorner(x, y, this.topRight)\r\n || this.isInBoundsCorner(x, y, this.bottomRight)\r\n || this.isInBoundsCorner(x, y, this.bottomLeft);\r\n }\r\n\r\n isInBoundsCorner(x, y, { x: cx, y: cy }) {\r\n return isInBoundsBox(x, y, cx, cy, this.transform.zoom);\r\n }\r\n\r\n isBetween(value, bound1, bound2) {\r\n const min = Math.min(bound1, bound2);\r\n const max = Math.max(bound1, bound2);\r\n return value >= min && value <= max;\r\n }\r\n\r\n isOnLines(x, y) \r\n {\r\n let retVal = false;\r\n this.lines.forEach(e => \r\n {\r\n if (isInBoundsLine(x, y, e.inner.x, e.inner.y, e.outer.x, e.outer.y))\r\n retVal = true;\r\n });\r\n return retVal\r\n }\r\n \r\n isOnCircles(x, y) {\r\n return this.isOnCircle(x, y, this.circleRadius / 6) || \r\n this.isOnCircle(x, y, this.circleRadius / 2) || \r\n this.isOnCircle(x, y, this.circleRadius);\r\n }\r\n\r\n isOnCircle(x, y, radius){\r\n let dx = x - this.centerX;\r\n let dy = y - this.centerY;\r\n let angle = Math.atan2(dy, dx);\r\n let pos = getArcPosition(this.centerX, this.centerY, radius, radius, angle);\r\n let diffX = Math.abs(x - pos.x);\r\n let diffY = Math.abs(y - pos.y);\r\n return diffX <= boxSize && diffY <= boxSize;\r\n }\r\n\r\n getHoveredBox(x, y) {\r\n const boxes = this.getBoxes();\r\n for (let i = 0; i < boxes.length; i++) {\r\n const box = boxes[i];\r\n if (isInBoundsBox(x, y, box.x, box.y, this.transform.zoom)) return box;\r\n }\r\n return null;\r\n }\r\n\r\n updateSize(x, y) {\r\n let largerX = Math.abs(x) > Math.abs(y);\r\n let max = Math.abs(x) > Math.abs(y) ? Math.abs(x) : Math.abs(y);\r\n let scaledMax = this.activeBox.location == \"O\" ? max / 2 : max * 1.3;\r\n if (largerX) {\r\n switch (this.activeBox.side) {\r\n case \"TR\":\r\n if (x < 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break;\r\n case \"TL\":\r\n if (x > 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break;\r\n case \"BR\":\r\n if (x < 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break;\r\n case \"BL\":\r\n if (x > 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break; \r\n }\r\n }\r\n else { \r\n switch (this.activeBox.side) {\r\n case \"TR\":\r\n if (y > 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break;\r\n case \"TL\":\r\n if (y > 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break;\r\n case \"BR\":\r\n if (y < 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break;\r\n case \"BL\":\r\n if (y < 0) this.increaseSize(scaledMax);\r\n else this.decreaseSize(scaledMax);\r\n break; \r\n }\r\n }\r\n }\r\n\r\n increaseSize(max) {\r\n this.circleRadius = this.circleSnapshop + max;\r\n }\r\n\r\n decreaseSize(max) {\r\n let canDecrease = this.circleSnapshop - max > 0;\r\n if (canDecrease) {\r\n this.circleRadius = this.circleSnapshop - max;\r\n }\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n let box = this.getHoveredBox(x, y);\r\n this.activeBox = box;\r\n if (this.activeBox) {\r\n this.initialMousePos = {x: x, y: y};\r\n this.circleSnapshop = this.circleRadius;\r\n }\r\n if (this.isInBounds) \r\n this.isActive = true;\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n const { dx, dy } = this.getAndUpdateInteraction(x, y);\r\n if (this.activeBox) {\r\n let difX = this.initialMousePos.x - x; \r\n let difY = this.initialMousePos.y - y;\r\n this.updateSize(difX, difY);\r\n }\r\n else {\r\n this.centerX += dx;\r\n this.centerY += dy;\r\n } \r\n this.signalReady();\r\n }\r\n\r\n deactivate() {\r\n this.isActive = false;\r\n this.initialMousePos = null;\r\n this.sizeSnapshop = null;\r\n this.signalReady();\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport SegmentChain from \"./segmentChain\";\r\nimport { setBoxStyle } from \"../canvasUtils\";\r\n\r\nexport default class ContinuousDraw extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n this.chains = [];\r\n this.activeChain = null;\r\n\r\n this.min = { x: position.x - 5, y: position.y - 5 };\r\n this.max = { x: position.x + 5, y: position.y + 5 };\r\n\r\n this.active = false;\r\n this.drawingInitialLines = true;\r\n this.isContinuous = true;\r\n }\r\n\r\n draw(ctx) {\r\n for (var i = 0; i < this.chains.length; i++)\r\n this.chains[i].draw(ctx);\r\n\r\n if (this.active && !this.drawingInitialLines)\r\n this.drawBoundingBox(ctx);\r\n }\r\n\r\n drawBoundingBox(ctx) {\r\n setBoxStyle(ctx);\r\n let x = this.min.x;\r\n let y = this.min.y;\r\n let width = this.max.x - this.min.x;\r\n let height = this.max.y - this.min.y;\r\n ctx.strokeRect(x, y, width, height);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return x >= this.min.x && x <= this.max.x\r\n && y >= this.min.y && y <= this.max.y;\r\n }\r\n\r\n mousedown(x, y) {\r\n if (this.drawingInitialLines) {\r\n this.activeChain = new SegmentChain({x, y}, this.options);\r\n this.chains.push(this.activeChain);\r\n this.activeChain.mousedown(x, y);\r\n } else\r\n for (var i = 0; i < this.chains.length; i++)\r\n this.chains[i].mousedown(x, y);\r\n this.syncMinMax();\r\n this.active = true;\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n if (this.drawingInitialLines)\r\n this.activeChain && this.activeChain.mousemove(x, y);\r\n else\r\n for (var i = 0; i < this.chains.length; i++)\r\n this.chains[i].mousemove(x, y);\r\n this.syncMinMax();\r\n this.signalReady();\r\n }\r\n\r\n mouseup() {\r\n this.activeChain = null;\r\n for (var i = 0; i < this.chains.length; i++)\r\n this.chains[i].deactivate();\r\n this.syncMinMax();\r\n this.signalReady();\r\n }\r\n\r\n deactivate() {\r\n this.activeChain = null;\r\n for (var i = 0; i < this.chains.length; i++)\r\n this.chains[i].deactivate();\r\n this.drawingInitialLines = false;\r\n this.isContinuous = false;\r\n this.active = false;\r\n this.signalReady();\r\n }\r\n\r\n syncMinMax() {\r\n if (this.chains.length) {\r\n this.min = { ...this.chains[0].min };\r\n this.max = { ...this.chains[0].max };\r\n for (var i = 1; i < this.chains.length; i++) {\r\n let c = this.chains[i];\r\n this.min.x = Math.min(this.min.x, c.min.x);\r\n this.min.y = Math.min(this.min.y, c.min.y);\r\n this.max.x = Math.max(this.max.x, c.max.x);\r\n this.max.y = Math.max(this.max.y, c.max.y);\r\n }\r\n }\r\n }\r\n\r\n setLineWidth(width) {\r\n for (var i = 0; i < this.chains.length; i++) \r\n this.chains[i].setLineWidth(width);\r\n this.signalReady();\r\n }\r\n\r\n updateColor(color) \r\n {\r\n for (var i = 0; i < this.chains.length; i++) \r\n this.chains[i].color = color;;\r\n this.color = color;\r\n }\r\n}","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { measureText, setFontStyle, setLineStyle, drawBox } from \"../canvasUtils\";\r\nimport { isInBoundsBox, isInBoundsLine } from \"../geometry\";\r\nimport MeasurementText from \"./measurementText\";\r\n\r\nexport default class Rectangle extends InteractiveAnnotation {\r\n constructor(position, options) {\r\n super(position, options);\r\n\r\n this.topLeftX = position.x;\r\n this.topLeftY = position.y;\r\n this.contactPoint = { x: 0, y: 0 };\r\n this.distanceFromTopLeft = { x: 0, y: 0 };\r\n\r\n this.height = 70;\r\n this.width = 70;\r\n this.area = 0;\r\n\r\n this.minWidth = 10;\r\n this.minHeight = 10;\r\n\r\n this.activeMovement = false;\r\n this.activeCorner = false;\r\n\r\n this.activeText = false;\r\n\r\n this.measurementTexts = {\r\n area: new MeasurementText(),\r\n width: new MeasurementText(),\r\n height: new MeasurementText()\r\n } \r\n }\r\n\r\n get isActive() {\r\n return this.activeMovement || !!this.activeCorner || !!this.activeText;\r\n }\r\n\r\n get isTextActive() {\r\n return !!this.activeText;\r\n }\r\n\r\n get bottomRightX() {\r\n return this.topLeftX + this.width;\r\n }\r\n\r\n get bottomRightY() {\r\n return this.topLeftY + this.height;\r\n }\r\n\r\n get topLeft() {\r\n return { x: this.topLeftX, y: this.topLeftY };\r\n }\r\n\r\n get topRight() {\r\n return { x: this.bottomRightX, y: this.topLeftY };\r\n }\r\n\r\n get bottomLeft() {\r\n return { x: this.topLeftX, y: this.bottomRightY };\r\n }\r\n\r\n get bottomRight() {\r\n return { x: this.bottomRightX, y: this.bottomRightY };\r\n }\r\n\r\n get widthTextPosition(){\r\n let x = this.topLeftX;\r\n let y = this.topLeftY - 25;\r\n return {x, y};\r\n }\r\n\r\n get widthText(){\r\n let length = Math.abs(this.scale * this.width);\r\n return length.toFixed(2) + \" mm\";\r\n }\r\n\r\n get widthTextWidth(){\r\n return measureText(this.widthText, this.font);\r\n }\r\n\r\n get heightTextPosition(){\r\n let x = this.topLeftX + this.width + 5;\r\n let y = this.topLeftY + (this.height / 2) - 10;\r\n return {x, y};\r\n }\r\n\r\n get heightText(){\r\n let length = Math.abs(this.scale * this.height);\r\n return length.toFixed(2) + \" mm\";\r\n }\r\n\r\n get heightTextWidth(){\r\n return measureText(this.heightText, this.font);\r\n }\r\n\r\n get areaTextPosition(){\r\n let x = this.topLeftX + 5;\r\n let y = this.topLeftY + this.height/2 + 10;\r\n return {x, y};\r\n }\r\n\r\n get areaText(){\r\n let area = Math.abs((this.scale * this.width) * (this.scale * this.height));\r\n return area.toFixed(2) + \" mm²\";\r\n }\r\n\r\n get areaTextWidth(){\r\n return measureText(this.areaText, this.font);\r\n }\r\n\r\n draw(ctx) {\r\n this.drawRect(ctx);\r\n this.drawText(ctx);\r\n if (this.isActive){\r\n if(this.isTextActive) this.drawTextInteractionBoxes(ctx) \r\n else this.drawInteractionBoxes(ctx)\r\n } \r\n }\r\n\r\n drawRect(ctx) {\r\n setLineStyle(ctx, this);\r\n ctx.strokeRect(this.topLeftX, this.topLeftY, this.width, this.height);\r\n }\r\n\r\n drawText(ctx){\r\n setFontStyle(ctx, this);\r\n\r\n this.measurementTexts.area.updateAndDraw(this.areaTextWidth, this.textSize, ctx, this.areaText, this.areaTextPosition.x, this.areaTextPosition.y);\r\n this.measurementTexts.width.updateAndDraw(this.widthTextWidth, this.textSize, ctx, this.widthText, this.widthTextPosition.x, this.widthTextPosition.y);\r\n this.measurementTexts.height.updateAndDraw(this.heightTextWidth, this.textSize, ctx, this.heightText, this.heightTextPosition.x, this.heightTextPosition.y);\r\n }\r\n\r\n drawInteractionBoxes(ctx) {\r\n drawBox(ctx, this.topLeftX, this.topLeftY, this.transform.zoom);\r\n drawBox(ctx, this.topLeftX, this.bottomRightY, this.transform.zoom);\r\n drawBox(ctx, this.bottomRightX, this.topLeftY, this.transform.zoom);\r\n drawBox(ctx, this.bottomRightX, this.bottomRightY, this.transform.zoom);\r\n }\r\n\r\n drawTextInteractionBoxes(ctx){ \r\n this.measurementTexts[this.activeText].drawTextInteractionBoxe(ctx);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isInBoundsResizeCorner(x, y) || this.isOnPerimeter(x, y) || this.isInBoundsAllTexts(x, y);\r\n }\r\n\r\n isInBoundsAllTexts(x, y) {\r\n return this.measurementTexts.height.isInBound(x, y)\r\n || this.measurementTexts.width.isInBound(x, y)\r\n || this.measurementTexts.area.isInBound(x, y);\r\n }\r\n\r\n isInBoundsResizeCorner(x, y) {\r\n return this.isInBoundsCorner(x, y, this.topLeft) \r\n || this.isInBoundsCorner(x, y, this.topRight)\r\n || this.isInBoundsCorner(x, y, this.bottomRight)\r\n || this.isInBoundsCorner(x, y, this.bottomLeft);\r\n }\r\n\r\n isOnPerimeter(x, y) {\r\n return isInBoundsLine(x, y, this.topLeft.x, this.topLeft.y, this.topRight.x, this.topRight.y)\r\n || isInBoundsLine(x, y, this.topLeft.x, this.topLeft.y, this.bottomLeft.x, this.bottomLeft.y)\r\n || isInBoundsLine(x, y, this.bottomRight.x, this.bottomRight.y, this.topRight.x, this.topRight.y)\r\n || isInBoundsLine(x, y, this.bottomRight.x, this.bottomRight.y, this.bottomLeft.x, this.bottomLeft.y);\r\n }\r\n\r\n isInBoundsCorner(x, y, { x: cx, y: cy }) {\r\n return isInBoundsBox(x, y, cx, cy, this.transform.zoom);\r\n }\r\n\r\n mousedown(x, y){\r\n this.clearActiveStates();\r\n if (this.isInBoundsCorner(x, y, this.topRight)) {\r\n this.activeCorner = \"TR\";\r\n } else if (this.isInBoundsCorner(x, y, this.bottomRight)) {\r\n this.activeCorner = \"BR\";\r\n } else if (this.isInBoundsCorner(x, y, this.bottomLeft)) {\r\n this.activeCorner = \"BL\";\r\n } else if (this.isInBoundsCorner(x, y, this.topLeft)) {\r\n this.activeCorner = \"TL\";\r\n } else if (this.measurementTexts.area.isInBound(x, y)){\r\n this.activeText = \"area\";\r\n } else if (this.measurementTexts.width.isInBound(x, y)){\r\n this.activeText = \"width\";\r\n } else if (this.measurementTexts.height.isInBound(x, y)){\r\n this.activeText = \"height\";\r\n }\r\n else {\r\n this.contactPoint.x = x;\r\n this.contactPoint.y = y;\r\n this.distanceFromTopLeft.x = this.contactPoint.x - this.topLeftX;\r\n this.distanceFromTopLeft.y = this.contactPoint.y - this.topLeftY;\r\n this.activeMovement = true;\r\n }\r\n this.signalReady();\r\n }\r\n \r\n mousemove(x, y) {\r\n if (this.activeMovement) this.updateLocation(x, y);\r\n else if (this.activeCorner) this.updateSize(x, y);\r\n else if (this.activeText) this.updateTextLocation(x, y);\r\n this.signalReady();\r\n }\r\n\r\n updateLocation(x, y) {\r\n this.topLeftX = x - this.distanceFromTopLeft.x;\r\n this.topLeftY = y - this.distanceFromTopLeft.y;\r\n }\r\n\r\n updateSize(x, y) {\r\n let width = 0;\r\n let height = 0;\r\n\r\n if (this.activeCorner.includes(\"L\")) {\r\n width = Math.max(this.bottomRightX - x, this.minWidth);\r\n if (width > this.minWidth) this.topLeftX = x;\r\n }\r\n else if (this.activeCorner.includes(\"R\")) width = Math.max(x - this.topLeftX, this.minWidth);\r\n\r\n this.width = width;\r\n\r\n if (this.activeCorner.includes(\"B\")) height = Math.max(y - this.topLeftY, this.minHeight);\r\n\r\n if (this.activeCorner.includes(\"T\")) {\r\n height = Math.max(this.bottomRightY - y, this.minHeight);\r\n if (height > this.minHeight) this.topLeftY = y;\r\n }\r\n\r\n this.height = height;\r\n }\r\n\r\n updateTextLocation(x, y){\r\n this.measurementTexts[this.activeText].updateLocation(x, y)\r\n }\r\n\r\n deactivate() {\r\n this.clearActiveStates();\r\n this.signalReady();\r\n }\r\n\r\n clearActiveStates() {\r\n this.activeMovement = false;\r\n this.activeCorner = null;\r\n this.activeText = null;\r\n this.contactPoint.x = 0;\r\n this.contactPoint.y = 0;\r\n this.distanceFromTopLeft.x = 0;\r\n this.distanceFromTopLeft.y = 0;\r\n }\r\n}\r\n","import { ANNOTATION_MODES, GRAYSCALE_MODES } from \"../config/config\";\r\nimport Arrow from \"./annotations/arrow\";\r\nimport Text from \"./annotations/text\";\r\nimport Redaction from \"./annotations/redaction\";\r\nimport OutlineBox from \"./annotations/outlinebox\";\r\nimport FreeHand from \"./annotations/freeHand\";\r\nimport Angle from \"./annotations/angle\";\r\nimport LengthLine from \"./annotations/lengthLine\";\r\nimport Area from \"./annotations/area\";\r\nimport CupToDisc from \"./annotations/cupToDisc\";\r\nimport FreeHandArea from \"./annotations/freeHandArea\";\r\nimport StandardCircles1 from \"./annotations/standardCircles1\";\r\nimport StandardCircles2 from \"./annotations/standardCircles2\";\r\nimport DrusenCircles1 from \"./annotations/drusenCircles1\";\r\nimport DrusenCircles2 from \"./annotations/drusenCircles2\";\r\nimport DrusenCircles3 from \"./annotations/drusenCircles3\";\r\nimport DrusenCircles4 from \"./annotations/drusenCircles4\";\r\nimport PDT from \"./annotations/pdt\";\r\nimport { bound } from \"./geometry\";\r\nimport ETDRSGrid from \"./annotations/etdrsGrid\";\r\nimport CanvasRenderer from \"./canvasRenderer\";\r\nimport ContinuousDraw from \"./annotations/continuousDraw\";\r\nimport Rectangle from \"./annotations/rectangle\"\r\nimport DeepDeeAnalysisChart from \"./annotations/deepDeeAnalysisChart\"\r\n\r\nexport function defaultColorSettings(grayscaleMode, isOptos) {\r\n return {\r\n grayscaleMode: grayscaleMode || GRAYSCALE_MODES.None,\r\n brightness: DEFAULT_BRIGHTNESS,\r\n contrast: DEFAULT_CONTRAST,\r\n gamma: DEFAULT_GAMMA,\r\n isOptos,\r\n greenBrightness: DEFAULT_BRIGHTNESS,\r\n greenContrast: DEFAULT_CONTRAST\r\n };\r\n}\r\n\r\nexport function octColorSettings() {\r\n return {\r\n isInverted: false,\r\n colorPalette: null\r\n };\r\n}\r\n\r\nexport function thicknessMapColorSettings(palette){\r\n return {\r\n colorPalette: palette,\r\n linearAdjustment: null\r\n };\r\n}\r\n\r\n// for the numbers, see: https://en.wikipedia.org/wiki/Luma_(video)\r\nexport function grayscaleREC709(pixel) {\r\n return Math.floor(getByte(pixel, RED) * 0.2126\r\n + getByte(pixel, GREEN) * .7152\r\n + getByte(pixel, BLUE) * 0.0722);\r\n}\r\n\r\nexport function grayscaleRed(pixel) {\r\n return getByte(pixel, RED);\r\n}\r\n\r\nexport function grayscaleGreen(pixel) {\r\n return getByte(pixel, GREEN);\r\n}\r\n\r\nexport function grayscaleBlue(pixel) {\r\n return getByte(pixel, BLUE);\r\n}\r\n\r\nexport const GRAYSCALE_SETTINGS = {\r\n None: null,\r\n REC709: { key: \"REC709\", pixelRule: grayscaleREC709 },\r\n Red: { key: \"Red\", pixelRule: grayscaleRed },\r\n Green: { key: \"Green\", pixelRule: grayscaleGreen },\r\n Blue: { key: \"Blue\", pixelRule: grayscaleBlue }\r\n}\r\n\r\nconst RED = 0;\r\nconst GREEN = 8;\r\nconst BLUE = 16;\r\nconst ALPHA = 24;\r\n\r\nexport function applyGrayscaleRule(pixel, rule) {\r\n let gray = rule(pixel);\r\n return createPixel(gray, gray, gray, getByte(pixel, ALPHA));\r\n}\r\n\r\n// see - https://www.html5rocks.com/en/tutorials/canvas/imagefilters/\r\n// brightness in (-0.5, 0.5)\r\nexport function getBrightnessTable(brightness) {\r\n const brightnessTable = new Uint8Array(256);\r\n const adjustment = brightness * 255;\r\n for (let i = 0; i < 256; i++) brightnessTable[i] = bound(i + adjustment, 0, 255);\r\n return brightnessTable;\r\n}\r\n\r\n// see - https://stackoverflow.com/questions/10521978/html5-canvas-image-contrast\r\n// contrast in (0.5, 1.5)\r\nexport function getContrastTable(contrast) {\r\n const contrastTable = new Uint8Array(256);\r\n const intercept = 128 * (1 - contrast);\r\n for (let i = 0; i < 256; i++) contrastTable[i] = bound(i * contrast + intercept, 0, 255);\r\n return contrastTable;\r\n}\r\n\r\n// see - https://stackoverflow.com/questions/14012221/gamma-adjustment-on-the-html5-canvas\r\n// gamma in (0.1, 1.9)\r\nexport function getGammaTable(gamma) {\r\n const gammaTable = new Uint8Array(256);\r\n for (let i = 0; i < 256; i++) gammaTable[i] = bound(255 * Math.pow(i / 255, 1 / gamma), 0, 255);\r\n return gammaTable;\r\n}\r\n\r\nexport const DEFAULT_BRIGHTNESS = 0;\r\nexport const DEFAULT_CONTRAST = 1;\r\nexport const DEFAULT_GAMMA = 1;\r\n\r\nexport function applyColorRule(pixel, colorTable) {\r\n const r = colorTable[getByte(pixel, RED)];\r\n const g = colorTable[getByte(pixel, GREEN)];\r\n const b = colorTable[getByte(pixel, BLUE)];\r\n return createPixel(r, g, b, getByte(pixel, ALPHA));\r\n}\r\n\r\nexport function applyGreenColorRule(pixel, colorTable) {\r\n const r = getByte(pixel, RED);\r\n const g = colorTable[getByte(pixel, GREEN)];\r\n const b = getByte(pixel, BLUE);\r\n return createPixel(r, g, b, getByte(pixel, ALPHA));\r\n}\r\n\r\nexport function getByte(value, n) {\r\n return (value >> n) & 0xff;\r\n}\r\n\r\nexport function createPixel(r, g, b, a) {\r\n return createShiftedByte(r, RED)\r\n | createShiftedByte(g, GREEN)\r\n | createShiftedByte(b, BLUE)\r\n | createShiftedByte(a, ALPHA);\r\n}\r\n\r\nfunction createShiftedByte(value, n) {\r\n return (value & 0xff) << n;\r\n}\r\n\r\nexport function hasCustomPixelColorSettings(settings) {\r\n return settings.grayscaleMode !== \"\"\r\n || settings.brightness !== DEFAULT_BRIGHTNESS\r\n || settings.contrast !== DEFAULT_CONTRAST\r\n || settings.gamma !== DEFAULT_GAMMA\r\n || (settings.isOptos && (\r\n settings.greenBrightness !== DEFAULT_BRIGHTNESS\r\n || settings.greenContrast !== DEFAULT_CONTRAST\r\n ));\r\n}\r\n\r\nexport function hasCustomOCTColorSettings(settings) {\r\n return settings.isInverted || !!settings.colorPalette;\r\n}\r\n\r\nexport function hasCustomThicknessColorSettings(settings){\r\n return !!settings.colorPalette || !!settings.linearAdjustment;\r\n}\r\n\r\nexport function applyPixelShadingRules(readBuffer, writeBuffer, colorSettings) {\r\n let { brightness, contrast, gamma, greenBrightness, greenContrast, grayscaleMode } = colorSettings;\r\n let grayscaleSetting = GRAYSCALE_SETTINGS[grayscaleMode];\r\n let grayscaleRule = grayscaleSetting && grayscaleSetting.pixelRule;\r\n\r\n let brightnessTable = (brightness !== DEFAULT_BRIGHTNESS) && getBrightnessTable(brightness);\r\n let contrastTable = (contrast !== DEFAULT_CONTRAST) && getContrastTable(contrast);\r\n let gammaTable = (gamma !== DEFAULT_GAMMA) && getGammaTable(gamma);\r\n let greenBrightnessTable = (greenBrightness !== DEFAULT_BRIGHTNESS) && getBrightnessTable(greenBrightness);\r\n let greenContrastTable = (greenContrast !== DEFAULT_CONTRAST) && getContrastTable(greenContrast);\r\n for (let i = 0; i < readBuffer.length; i++) {\r\n let pixel = readBuffer[i];\r\n\r\n if (grayscaleRule) {\r\n let isGreen = grayscaleMode === GRAYSCALE_MODES.Green;\r\n let gray = grayscaleRule(pixel);\r\n\r\n if (gammaTable) gray = gammaTable[gray];\r\n if (contrastTable) gray = contrastTable[gray];\r\n if (isGreen && greenContrastTable) gray = greenContrastTable[gray];\r\n if (brightnessTable) gray = brightnessTable[gray];\r\n if (isGreen && greenBrightnessTable) gray = greenBrightnessTable[gray];\r\n\r\n pixel = createPixel(gray, gray, gray, getByte(pixel, ALPHA));\r\n } else {\r\n if (gammaTable) pixel = applyColorRule(pixel, gammaTable);\r\n if (contrastTable) pixel = applyColorRule(pixel, contrastTable);\r\n if (greenContrastTable) pixel = applyGreenColorRule(pixel, greenContrastTable);\r\n if (brightnessTable) pixel = applyColorRule(pixel, brightnessTable);\r\n if (greenBrightnessTable) pixel = applyGreenColorRule(pixel, greenBrightnessTable);\r\n }\r\n\r\n writeBuffer[i] = pixel;\r\n }\r\n}\r\n\r\nexport function setMinimalSize(canvas, img, size){\r\n canvas.width = Math.min(img.width, size.width || size.w);\r\n canvas.height = Math.min(img.height, size.height || size.h);\r\n}\r\n\r\nexport function drawShadedImage(img, canvas, rule, settings){\r\n if (!canvas.width || !canvas.height) return false;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n const writeData = ctx.createImageData(canvas.width, canvas.height);\r\n let writeBuffer = new ArrayBuffer(imgData.data.length);\r\n rule(new Uint32Array(imgData.data.buffer), new Uint32Array(writeBuffer), settings);\r\n writeData.data.set(new Uint8ClampedArray(writeBuffer));\r\n ctx.putImageData(writeData, 0, 0);\r\n return true;\r\n}\r\n\r\nexport function exportBlob(canvas, mimeType = \"image/jpeg\", quality = 1) {\r\n return new Promise(resolve => {\r\n if (canvas.toBlob) canvas.toBlob(resolve, mimeType, 1);\r\n else if (canvas.msToBlob) {\r\n let blob = canvas.msToBlob();\r\n resolve(blob);\r\n } else {\r\n const dataUrl = canvas.toDataUrl(mimeType, quality);\r\n let blob = generateBlobFromDataUrl(dataUrl, mimeType);\r\n resolve(blob);\r\n }\r\n })\r\n}\r\n\r\nexport function generateBlobFromDataUrl(dataUrl, mimeType = \"image/jpeg\") {\r\n const base64 = dataUrl.split(\",\")[1];\r\n return generateBlobFromBase64(base64, mimeType);\r\n}\r\n\r\nexport function generateBlobFromBase64(base64, mimeType = \"image/jpeg\") {\r\n const data = atob(base64);\r\n const arr = new Uint8Array(data.length);\r\n for (let i = 0; i < data.length; i++) arr[i] = data.charCodeAt(i);\r\n return new Blob([arr], { type: mimeType });\r\n}\r\n\r\nexport function loadImageFromBlob(blob) {\r\n return new Promise((resolve, reject) => {\r\n const url = URL.createObjectURL(blob);\r\n const img = new Image();\r\n img.onload = () => {\r\n img.onload = null;\r\n img.onerror = null;\r\n resolve({img, url});\r\n }\r\n img.onerror = () => {\r\n img.onload = null;\r\n img.onerror = null;\r\n console.error(\"failed to load image blob\", blob);\r\n URL.revokeObjectURL(url);\r\n reject();\r\n }\r\n img.src = url;\r\n });\r\n}\r\n\r\nexport function loadImageFromBase64(src) {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.onload = () => resolve(img);\r\n img.onerror = reject\r\n img.src = src;\r\n });\r\n}\r\n\r\nexport function getAnnotationType(mode) {\r\n switch (mode) {\r\n case ANNOTATION_MODES.Arrow: return Arrow;\r\n case ANNOTATION_MODES.Text: return Text;\r\n case ANNOTATION_MODES.Redact: return Redaction;\r\n case ANNOTATION_MODES.Outline: return OutlineBox;\r\n case ANNOTATION_MODES.FreeHandLine: return FreeHand;\r\n case ANNOTATION_MODES.ContinuousDraw: return ContinuousDraw;\r\n case ANNOTATION_MODES.Angle: return Angle;\r\n case ANNOTATION_MODES.LengthLine: return LengthLine;\r\n case ANNOTATION_MODES.Area: return Area;\r\n case ANNOTATION_MODES.CupToDisc: return CupToDisc;\r\n case ANNOTATION_MODES.FreeHandArea: return FreeHandArea;\r\n case ANNOTATION_MODES.PDT: return PDT;\r\n case ANNOTATION_MODES.ETDRSGrid: return ETDRSGrid;\r\n case ANNOTATION_MODES.StandardCircles1: return StandardCircles1;\r\n case ANNOTATION_MODES.StandardCircles2: return StandardCircles2;\r\n case ANNOTATION_MODES.DrusenCircles1: return DrusenCircles1;\r\n case ANNOTATION_MODES.DrusenCircles2: return DrusenCircles2;\r\n case ANNOTATION_MODES.DrusenCircles3: return DrusenCircles3;\r\n case ANNOTATION_MODES.DrusenCircles4: return DrusenCircles4;\r\n case ANNOTATION_MODES.Rectangle: return Rectangle;\r\n case ANNOTATION_MODES.DeepDeeInfo: return DeepDeeAnalysisChart;\r\n default: return null;\r\n }\r\n}\r\n\r\nexport const boxSize = 17;\r\nexport const boxLineWidth = 1;\r\nexport const boxColor = \"red\";\r\n\r\nexport function setBoxStyle(ctx) {\r\n ctx.lineWidth = boxLineWidth;\r\n ctx.fillStyle = boxColor;\r\n ctx.strokeStyle = boxColor;\r\n}\r\n\r\nexport function drawBoxes(ctx, points, zoomLevel = 1.0) {\r\n points.forEach(b => drawBox(ctx, b.x, b.y, zoomLevel));\r\n}\r\n\r\nexport function drawBox(ctx, x, y, zoomLevel = 1.0, size = boxSize) {\r\n let newSize = Math.max(size/zoomLevel, size);\r\n setBoxStyle(ctx);\r\n ctx.beginPath();\r\n ctx.strokeRect(x - newSize, y - newSize, newSize * 2, newSize * 2);\r\n ctx.closePath();\r\n}\r\n\r\nexport const lineColor = \"white\";\r\nexport const lineWidth = 3;\r\n\r\nexport function setLineStyle(ctx, annotation) {\r\n ctx.fillStyle = annotation.color || lineColor;\r\n ctx.strokeStyle = annotation.color || lineColor;\r\n ctx.lineWidth = annotation.lineWidth || lineWidth;\r\n}\r\n\r\nexport const font = \"25px Calibri\";\r\nexport const fontColor = \"white\";\r\nexport const baseline = \"hanging\";\r\nexport const measuringCanvas = document.createElement(\"canvas\");\r\nexport const measuringCtx = measuringCanvas.getContext(\"2d\");\r\n\r\nexport function measureText(text, font = \"25px Calibri\") {\r\n measuringCtx.font = font;\r\n return measuringCtx.measureText(text).width;\r\n}\r\n\r\nexport function setFontStyle(ctx, annotation) {\r\n ctx.font = annotation.font || font;\r\n ctx.fillStyle = annotation.fontColor || annotation.color || fontColor;\r\n ctx.textBaseline = annotation.baseline || baseline;\r\n}\r\n\r\nconst hexRegex = /^#?(([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2}))|(([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1}))$/i;\r\nexport function hexToRgb(color) {\r\n if (color.length !== 4 && color.length !== 7) return null;\r\n\r\n let result = hexRegex.exec(color);\r\n if (result === null) return null;\r\n\r\n let r = 0, g = 0, b = 0;\r\n if (result[1]) {\r\n // matched a 6-digit color\r\n r = parseInt(result[2], 16);\r\n g = parseInt(result[3], 16);\r\n b = parseInt(result[4], 16);\r\n }\r\n else if (result[5]) {\r\n // matched a 3 digit color\r\n r = parseInt(result[6] + result[6], 16);\r\n g = parseInt(result[7] + result[7], 16);\r\n b = parseInt(result[8] + result[8], 16);\r\n }\r\n return { r, g, b };\r\n}\r\n\r\nexport function getWebglContext(canvas) {\r\n return canvas.getContext(\"webgl2\") || canvas.getContext(\"webgl\") || canvas.getContext(\"experimental-webgl\");\r\n}\r\n\r\nexport function isContextLost(context) {\r\n return context.isContextLost();\r\n}\r\n\r\nexport const octThicknessGradient = [\r\n [0.000, 0x000000],\r\n [0.229, 0x072797],\r\n [0.263, 0x0039B4],\r\n [0.291, 0x004CBE],\r\n [0.330, 0x008BCC],\r\n [0.362, 0x00AFCB],\r\n [0.388, 0x00CDC1],\r\n [0.400, 0x00DDA7],\r\n [0.437, 0x00E75E],\r\n [0.472, 0x06F800],\r\n [0.476, 0x0CF900],\r\n [0.502, 0x30FF00],\r\n [0.584, 0xDEFE00],\r\n [0.620, 0xFFF800],\r\n [0.690, 0xFFA000],\r\n [0.722, 0xFF6800],\r\n [0.878, 0xFF1010],\r\n [0.882, 0xFF1616],\r\n [0.906, 0xFF4C4C],\r\n [0.910, 0xFF5555],\r\n [0.929, 0xFF9696],\r\n [0.941, 0xFFBCBC],\r\n [0.957, 0xFFDDDD],\r\n [0.969, 0xFFF1F1],\r\n [1.000, 0xFFFFFF]\r\n];\r\n\r\nexport const heidelbergThicknessGradient = [\r\n [0.000, 0x000000],\r\n [0.004, 0x000000],\r\n [0.012, 0x0B0B0B],\r\n [0.024, 0x1A1A1A],\r\n [0.027, 0x1F1F1F],\r\n [0.043, 0x2D2D2D],\r\n [0.047, 0x353535],\r\n [0.090, 0x686868],\r\n [0.106, 0x797979],\r\n [0.145, 0xA7A7A7],\r\n [0.149, 0xA7A7A8],\r\n [0.188, 0x7C85A3],\r\n [0.204, 0x6977A0],\r\n [0.259, 0x2F4791],\r\n [0.282, 0x0F328B],\r\n [0.290, 0x042B88],\r\n [0.294, 0x052790],\r\n [0.302, 0x031EA0],\r\n [0.306, 0x0724A8],\r\n [0.318, 0x0A43C3],\r\n [0.322, 0x0149C0],\r\n [0.325, 0x035CC5],\r\n [0.333, 0x0979CD],\r\n [0.337, 0x008DCC],\r\n [0.341, 0x00A3CF],\r\n [0.349, 0x00A9C7],\r\n [0.353, 0x00B9CA],\r\n [0.357, 0x00C3C2],\r\n [0.361, 0x00D1BC],\r\n [0.365, 0x00D9B2],\r\n [0.384, 0x00E189],\r\n [0.388, 0x00E37E],\r\n [0.427, 0x00F603],\r\n [0.431, 0x08F801],\r\n [0.447, 0x35FE00],\r\n [0.451, 0x3BFC00],\r\n [0.467, 0x6EFB00],\r\n [0.471, 0x73FD00],\r\n [0.502, 0xBCFF00],\r\n [0.545, 0xF8FA00],\r\n [0.557, 0xFAF000],\r\n [0.600, 0xF6B300],\r\n [0.612, 0xFA9E00],\r\n [0.620, 0xFD8900],\r\n [0.627, 0xFC7B00],\r\n [0.776, 0xFF0D12],\r\n [0.780, 0xFE0F17],\r\n [0.784, 0xFD141B],\r\n [0.792, 0xFF2C34],\r\n [0.808, 0xFE6764],\r\n [0.812, 0xF76C6B],\r\n [0.827, 0xF9ACA8],\r\n [0.831, 0xF3B1AC],\r\n [0.839, 0xFBCAC4],\r\n [0.847, 0xF9DDDD],\r\n [0.878, 0xFFFBFF],\r\n [1.000, 0xFFFFFF]\r\n];\r\n\r\nexport const zeissThicknessGradient = [\r\n [0.000, 0x000000],\r\n [0.275, 0xA5A5A5],\r\n [0.286, 0xA6A6A9],\r\n [0.443, 0x072797],\r\n [0.447, 0x032497],\r\n [0.451, 0x002096],\r\n [0.459, 0x002FAC],\r\n [0.467, 0x0039B4],\r\n [0.475, 0x004CBE],\r\n [0.494, 0x008BCC],\r\n [0.506, 0x00AFCB],\r\n [0.522, 0x00CDC1],\r\n [0.533, 0x00DDA7],\r\n [0.561, 0x00E75F],\r\n [0.596, 0x06F800],\r\n [0.600, 0x0CF900],\r\n [0.616, 0x30FF00],\r\n [0.698, 0xDEFE00],\r\n [0.733, 0xFFF800],\r\n [0.804, 0xFFA000],\r\n [0.835, 0xFF6800],\r\n [0.933, 0xFF0E0E],\r\n [0.937, 0xFF1C1C],\r\n [1.000, 0xFFFFFF]\r\n];\r\n\r\nexport const zeissDifferenceGradient = [\r\n [0.000, 0x0000FF],\r\n [0.250, 0x00FF00],\r\n [0.500, 0xFFFFFF],\r\n [0.750, 0xFFFF00],\r\n [1.000, 0xFF0000]\r\n];\r\n\r\nexport const heidelbergDifferenceGradient = [\r\n [0.000, 0x00FF00],\r\n [0.250, 0x007700],\r\n [0.500, 0x000000],\r\n [0.750, 0x770000],\r\n [1.000, 0xFF0000]\r\n];\r\n\r\nexport const PALETTE_LENGTH = 256;\r\n\r\n// see: https://github.com/Erkaman/glsl-gradient-palette\r\n// see: https://gamedev.stackexchange.com/questions/43294/creating-a-retro-style-palette-swapping-effect-in-opengl\r\nexport function generatePalette(gradient) {\r\n var length = PALETTE_LENGTH;\r\n var palette = [];\r\n let g = 0; // current gradient index\r\n for (let p = 0; p < length; p++) {\r\n let fraction = p / length;\r\n if (gradient[g + 1][0] < fraction) g++;\r\n let c1 = gradient[g];\r\n let c2 = gradient[g + 1];\r\n let distance = (fraction - c1[0]) / (c2[0] - c1[0]);\r\n palette.push(...mixColors(c1[1], c2[1], distance));\r\n }\r\n var typed = new Uint8Array(palette);\r\n return typed;\r\n}\r\n\r\nexport const octThicknessPalette = \r\n{\r\n isInverted: false,\r\n colorPalette: generatePalette(octThicknessGradient)\r\n};\r\n\r\nfunction mixColors(c1, c2, dist) {\r\n const r1 = getByte(c1, RED);\r\n const g1 = getByte(c1, GREEN);\r\n const b1 = getByte(c1, BLUE);\r\n const r2 = getByte(c2, RED);\r\n const g2 = getByte(c2, GREEN);\r\n const b2 = getByte(c2, BLUE);\r\n return [mixByte(r1, r2, dist), mixByte(g1, g2, dist), mixByte(b1, b2, dist)];\r\n}\r\n\r\nfunction mixByte(b1, b2, dist) {\r\n return Math.floor(b1 * (1 - dist) + b2 * dist);\r\n}\r\n\r\nexport function applyOCTPixelShading(readBuffer, writeBuffer, settings) {\r\n for (let i = 0; i < readBuffer.length; i++) {\r\n let pixel = readBuffer[i];\r\n\r\n if (settings.isInverted) \r\n pixel = invertColor(pixel);\r\n else if (settings.colorPalette)\r\n {\r\n pixel = paletteColor(pixel, settings.colorPalette, settings.linearAdjustment);\r\n }\r\n\r\n writeBuffer[i] = pixel;\r\n }\r\n}\r\n\r\nfunction invertColor(pixel){\r\n const r = 255 - getByte(pixel, RED);\r\n const g = 255 - getByte(pixel, GREEN);\r\n const b = 255 - getByte(pixel, BLUE);\r\n return createPixel(r, g, b, getByte(pixel, ALPHA));\r\n}\r\n\r\nfunction paletteColor(pixel, palette, adjustment){\r\n // the images are grayscale, so the color selection is arbitrary\r\n let oldR = getByte(pixel, RED);\r\n if (adjustment) oldR = Math.floor(adjustment.slope * (oldR + adjustment.offset));\r\n if (oldR > PALETTE_LENGTH - 1)\r\n oldR = PALETTE_LENGTH - 1;\r\n const r = palette[oldR * 3];\r\n const g = palette[oldR * 3 + 1];\r\n const b = palette[oldR * 3 + 2];\r\n // the palette is in BGR, so flip r and b\r\n return createPixel(b, g, r, getByte(pixel, ALPHA));\r\n}\r\n\r\nexport function drawEllipse(ctx, centerX, centerY, radiusX, radiusY){\r\n if (ctx.ellipse) ctx.ellipse(centerX, centerY, radiusX, radiusY, 0, 0, 2 * Math.PI);\r\n else drawEllipseBezier(ctx, centerX, centerY, radiusX, radiusY);\r\n}\r\n\r\n// https://stackoverflow.com/questions/14169234/the-relation-of-the-bezier-curve-and-ellipse\r\nexport function drawEllipseBezier(ctx, centerX, centerY, radiusX, radiusY){\r\n let kappa = 0.5522848, // magic number\r\n ox = radiusX * kappa, // horizontal control point\r\n oy = radiusY * kappa, // vertical control point\r\n xs = centerX - radiusX, // left\r\n ys = centerY - radiusY, // top\r\n xe = centerX + radiusX, // right\r\n ye = centerY + radiusY, // bottom\r\n xm = centerX, // center x\r\n ym = centerY; // center y\r\n\r\n ctx.moveTo(xs, ym);\r\n ctx.bezierCurveTo(xs, ym - oy, xm - ox, ys, xm, ys);\r\n ctx.bezierCurveTo(xm + ox, ys, xe, ym - oy, xe, ym);\r\n ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\r\n ctx.bezierCurveTo(xm - ox, ye, xs, ym + oy, xs, ym);\r\n}\r\n\r\nexport function calculatePixelDifference(img, offsetX, offsetY, compareBuffer, baselineBuffer, writeBuffer, settings){\r\n let palette = settings.colorPalette;\r\n let adjust = settings.linearAdjustment;\r\n for (let y = 0; y < img.height; y++) {\r\n for (let x = 0; x < img.width; x++) {\r\n let baselineX = x + offsetX;\r\n if (baselineX < 0 || baselineX >= img.width) continue;\r\n let baselineY = y + offsetY;\r\n if (baselineY < 0 || baselineY >= img.height) continue;\r\n\r\n let compareIndex = y * img.width + x;\r\n let comparePixel = compareBuffer[compareIndex];\r\n let baselineIndex = baselineY * img.width + baselineX;\r\n let baselinePixel = baselineBuffer[baselineIndex];\r\n if (comparePixel === undefined || baselinePixel === undefined) continue;\r\n let compareRed = getByte(comparePixel, RED);\r\n let baselineRed = getByte(baselinePixel, RED);\r\n\r\n let gray = compareRed - baselineRed;\r\n let gray_adjust = Math.floor(adjust.slope * (gray + adjust.offset));\r\n if (gray_adjust >= PALETTE_LENGTH)\r\n gray_adjust = PALETTE_LENGTH - 2;\r\n else if (gray_adjust <= 0)\r\n gray_adjust = 0;\r\n let b = palette[gray_adjust * 3] || 0;\r\n let g = palette[gray_adjust * 3 + 1] || 0;\r\n let r = palette[gray_adjust * 3 + 2] || 0;\r\n let pixel = createPixel(r, g, b, (r || g || b) ? 255 : 0);\r\n\r\n writeBuffer[compareIndex] = pixel;\r\n }\r\n }\r\n}\r\n\r\nexport function generateFlatImage(context) {\r\n if (context.clearActiveAnnotation) context.clearActiveAnnotation();\r\n\r\n let img = context.image && (context.image.imgHtmlObject || context.image.thumbHtmlObject);\r\n let settings = context.imageColorSettings;\r\n\r\n let canvas = context.saveCanvas;\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n let renderer = new CanvasRenderer(canvas);\r\n let imgSize = (context.image && context.image.imgSize);\r\n if (!imgSize || !imgSize.w || !imgSize.h) imgSize = context.image.thumbSize;\r\n renderer.doScaleToPixelRatio = false;\r\n renderer.canvasSize = imgSize;\r\n renderer.imgSize = imgSize;\r\n renderer.isFlipped = context.isFlipped;\r\n renderer.isFlipped90 = context.isFlipped90;\r\n if (hasCustomPixelColorSettings(settings)) {\r\n // note: this method puts image data directly onto the canvas\r\n drawShadedImage(img, canvas, applyPixelShadingRules, settings);\r\n } else {\r\n renderer.drawImg(img);\r\n }\r\n // note: using \"render\" instead of \"draw\" here because draw erases the canvas!\r\n let ctx = canvas.getContext(\"2d\");\r\n context.annotations.forEach(a => renderer.renderAnnotation(a, ctx));\r\n\r\n if (context.setFlattenedImageReady) context.setFlattenedImageReady(true);\r\n} ","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Green.3b91ceec.png\";","module.exports = __webpack_public_path__ + \"img/Physician - Blue - Selected.28b6c272.png\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Blue - Selected.2fe90f8b.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsSAAALEgHS3X78AAABKElEQVRIia2UgW2DMBBFv7NAvEG7QekE7QjxBOkIHSEjZIOGBTDdoNkg3SAb4Exw1aFzRehBjc2XEBJn3+Pfxxg03QHAFUBLzgasrA0AbvoBoDM+tMaH3ZoIdmDFwXbw/MaOxFVbBCAiGB9OAPYTaxhWkbPXHMBG7oeZNe+5zX8B0uCs1M/k7Cm3OQYOWEel/iLjy1afQZTxgZ08KM1qcvat1EF0UQN4lnCj9rlOxg5sPGzGhwrA1+jzrSX05AN5B/hT1CHfAF5TIeMR3YmcvXCz0bieGMpuiwGsUsi/gFJIEiAB8ji1bzZkdYMe/E2Cv2Q7iJpwshUnVTEACyFZgCWQbEAqZHHImuaCXwXQv6kO+Swa0VDKuPgXvwM7WPNC01VoumPfkwg/tFbdVhj9iKQAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Sonomed Escalon Logo for Dark Backgrounds.4ee28523.png\";","module.exports = __webpack_public_path__ + \"img/reports-icon-blue.0815f216.svg\";","module.exports = __webpack_public_path__ + \"img/Calendar_-_Blue.75a557df.png\";","module.exports = __webpack_public_path__ + \"img/Close - Gray.9f18d2cd.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0wOC0zMFQxNzoxMTo1NS0wNDowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDItMDFUMDk6NDI6NDMtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDItMDFUMDk6NDI6NDMtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M2U4ZGM4YTktMzg3Zi1iZDRmLWIyY2MtMzEwOTlhZWIwMDA2IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NjVmMDAxOGYtNzg4ZS04YjQxLWI4MjctMDM0MGQzMWEzYTI1IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YjNlZDNiNzktZGQ0Ni1hZDRkLWI1YTQtZDJjZDhkNDhlNTljIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiM2VkM2I3OS1kZDQ2LWFkNGQtYjVhNC1kMmNkOGQ0OGU1OWMiIHN0RXZ0OndoZW49IjIwMTgtMDgtMzBUMTc6MTE6NTUtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmFmMTM4OTcyLTNlNDctMDk0ZS04YTI4LTQ0NGU3NjJmYjE5MCIgc3RFdnQ6d2hlbj0iMjAxOS0wMi0wMVQwOTozOToyMi0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6M2U4ZGM4YTktMzg3Zi1iZDRmLWIyY2MtMzEwOTlhZWIwMDA2IiBzdEV2dDp3aGVuPSIyMDE5LTAyLTAxVDA5OjQyOjQzLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvsWuIAAAMOSURBVDjLTZNNaF1VFIXX3mffc+67774/kpekmgRSxNqIA1EHBUEUB6KgIwcFp5aOFEERapwIOhMKYkVwIggV6UhxYMG2VmhDqhMLWosDaW2raZM0v+/ee362A9vYb7JG32JNlnx47inche5kAsAAFCAh7VjWuV4Wn2uZOMo5nmxl4dKY3YbjBoJ7IABeCcIKIZ3OSMlyOuRY37peW5dU0TFJZ9vV+zNFfDcm/b9AAURQt5S4YQhocaysiS/kRmcyTrFS4MxqF1Vkmq/zhdLUtLdcW5C7sgLGctooJb0xsM0mQz+zJi0Vxv9ViD+2r4wPzhY7jx+9MnXoh/VWa9wO3rmv2D4temc6E2JX4msdCQ85juOdrFlxHL51xv9mKEE4LU1Z+8Vj7eaPb1btR1erDDveHhQokIjyofWv9jP/dsvEnVL8kbbU65YDVIGueFze6uPcrSH2ZPGnh4sam4mQsc5IAklPwgGCHk2A72bNrx2p1oXDKQWhbxtc2ujj7M0pEBQZ+/3TNqIwAUSpESENTFgYRfYDm1xH6tPC4SRB0ZGwKxtKKExEBF5ypHigqGqmdEIs6xM+0f6taNwjtv494/A5k6IrDX5ZH8OPN6eQmwDLCZbTMwAeHbomzhSjZVD6Wizr839W2R4hoDDhZ2f8tQwJF9fHsLgygcJEGEoAMFdKehaE7qwbmXE3OhIVKgQd/O0FDELHxI2eNLiwOoHzK5NwHJFxgirt7WZhaI0+OWbr3sDWbyriGQO9LTvRnG+UXl/zgquVG27HAS6sTuzKjhUZp7wj8eWu+Ou5iR/kpjnG0JEqQXJOZ8cl4J9G8NWNyRfn2/6Tybw5HlSXhXF/YeJyacJFBRbbEuZ7dvSecMgIiqQEEdYbMy4cvOXD8StVntVRDh/obx6ebtVNAi21TPzOcfSWwwnLEZZ8n6G3k/53PVnzjNKkL58ebPVWvPnYcTId8SjFW2vCtYx0kUhdzh4ZR4pKuzIACAPYjow513y6r9w+BegrRBqFw/c5h8tMsSLQJiEhKCtB7z0w/gXiY3DpOJMZkgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI4AAACOCAYAAADn/TAIAAAACXBIWXMAAC4jAAAuIwF4pT92AAAOwUlEQVR4nO2dTWxU1xXHL8Z8uIAxng1REHikZNFBKsOm8SJIlqIgJV1AVCK1Kzws2iWzaJetIF02i+myXTD2omqlJIq9SSSiSJaSBXST8SLOopXGg4jCZogNBIj5qv7P5zpvZu6bee/NPffjzftJIxsL+33937nnnnvOubtevHghRolivT0nhJgSQpTpsudClz8jhDgRcTtaQoj10L9X6GtDCLHRrBRWIn4vk2RWOMV6W4pjjj79RKGLFgmpQcJqNCuFDXNXbY5MCadYb58PCeWUA6cEVklEK81KYcmB89GC18Ihq3KePhDLYQdOqx+bJCIIaMlna+SlcMiy4HPRgdMZhkUSkHeWyBvhkHWpCiHmDfgqpoFvtCCEqPlihZwXTrHehlN7JQPWJS6wQlealcK6nj/Hg7PCGUHBdOO0gJwTTi6YHpwUkDPCCfkwVQ9mR6bBbKzmkg/khHBollTLoNOrGzjRVRdmYVaFQ1YGs4lz1k7CT5Yxu7RpfcZsHZiszHoumlTgnq3TPbSCcYtDVqaWO7/aWKThy6j1MSqcYr1dpqHJlXWkrLBKQ1fD1PUYG6qK9fY8rdPkotEP7ukK3WMjGBFOsd5GXKaeT7NZwb2t071mh32oKtbbC7k/Y5zFZqXAan3YhENOcD402QN+zxyX08wyVOWicQLp90xxnIx24eSicQo28WgVTi4aJ2ERjzbh5KJxGu3iGdd4tU6I5tjBMVGaHhelwrgoTe8Wk3t3BZ+fT3de6rcPnovbD54F39+48zT4fq39TKzdfWrpzNk5Rc+orONAWmZVtqfcZ4/vFWdP7BWzR/eIlw8OZ0Tvb70QN+48EddvbYnrrS1xbytz5UNapupDC6dYb2Pd6fKwJ5IUWJZLJyfEhVf2iUN7d7Ed57NbW+LD//4YCClDXG1WCkMFCocSDoW46ybvJ6xK9fSEeO3oHpOHDYa2WuNhIKKMUGlWCgtpLyW1cGjBcsXUMgIszJ9fOyDePL7XxOEigYD+8MWDYDjznE0KEKZaGE0lHNMzqOrpn4lLpf2sQ1JSMIRBQJ77QKmjy2k9yZoJ0cDKfHLusLhcnnBKNACW78t3jwSOucecomeZmMQWh7LOPua+V3gg75856JxgVNTXHov3bv7g3onF552kecyJhEND1Dq3X3Ph1X3ir68f5DyEdjwfuuDvzCQZspIOVQvcooGV8U00goauf781GQQbPeQwPdvYxBYODVGsieUQza9f2cd5CFYQnfZYPOeSJL/HGqpoiGpw1j1dOrlf/OmXB7j+vFG+uftUvL286eOpo26rHGfIimtxqpyigU+TFdEIsjywnh5ygp71QAZaHKrlbnD5NiUy7z7MnpLyl//8IK59/divk952lMuDatXjWJwrXKKBL/D+mQOZFA2AFS1N60xAMMJheuZ96SscsjZsq96ICHenO2QNvBgecpGefSSDnhpbqQXexEppP/stvXnnifjwfz+K2/ef76wvyZwdpGIg0Mhp8fBi4AWpffWQ7RhMXKHuZ0oifRxSXJPrrODXcK5wQzDv3Xw4MDELwyUeLKeIkePz9vKGuP3gOdsxmChG+Tr9hio2a4PUCE7RYAngN5/ei5XNh0gvlgt+++m94AFzcIjE6SGRGlBaHIrbfM91nZzW5m+NR6mHBe4Z3pkPvvfR6hxRxXWiLE6suXwaOK0N1ouG8SVgoZCsxYWnVkephSjnmK18FBFiLqJWqOEAI8gok8AQ2b1+64m49vWjnkVJxF3w/znEjb8Ln8qzhdB51ZDVY3FovYIlSoybxpXB9xFmTophABHcv79xqOO4mOkgxydqXYkraIchEDM5zzihWsNSDVVsXZ7w1nOhygWGdeu3aAoB/eONQz0/R2I6l6PsaeJXf+GQU8wW8JtlnEmpcoAvlSYG/h6GJFV0lyun+E0arjzjYncxX7fFYe0pxzVMfaOYdkMMcWusVMPH2t1nWs5NBecLxEiHNrpfNTbhcN6sYwd3B/5KGJff6tmX9vhYp3U+nOzVLZy53v+vB9wsLuB0DjMLurdlNraC0mQP6dDGji0nz5ktLdTlm4VS325mj/ItvpouJtTE4fDsKuwEsFkb4fDQgeUJ1TSe++EeG7LG3RI7GjEmHBffMsR+VEFDzrCBBH6Zh3QKh6ZaI9XXBqJBOYuKatnLpQETnJLTcmlxtPRM8QUshEaJBvXpw7ZKiQPnZIGZQCvyDrEOUy6lT/7xyweRC6EYokwkl3lOoBUjFscVxxiiiWpT4kL1qCcOc4fFYRWObJlmC6w7IVErSjQYnlyoHr3w6v4gkOl4ZLlDOKwbjNlOXkKeTdTaE1bPbQxPqqAjLA5mn/96azIQs6MhjEArY8V6m9W/cRmbJcdoVNlNeKiCmD85N+VkeQ00gzNl6bzdDVeaQlowHLhep47ZHYYuE3GlhEyNmZqKZ7gNbCpU90NlXbAOB//LMfGUjbnxHiZpswHrq0of7Zck75p4xrhjOJLc4vyE6l7EmUk5JJ45Y57Xje/sCUeWvYSxOWNBJ/duSoV4a1cQjwsd4I0JBxcKE22jwcCw+Tq6ufFdb2ggSewGL8HrH3xvtVoCQ1Xf4nKdZKw7eSpky/9ukgjnUNDlw2rAcmaMO/gXRpUwNWqoXh4MpUktMfK3LVZMnDC6OMJZduILqmWPtA4vosu2ML6qhpYjpoFY0b0i/FFVRnCDdv6qYSqt5UCA0FZZsfF4NspuTa8NwTFH94ows7QmZJJra496jjbsVknYPcdG7x3jFgeBwI8sWB3bwOrpHKYkEJ2N2I6VBBAPu1MNzbW1xz3TZyxq6lgvu2BhzW2MetsaZdSsTrDXleJlQf6NDhCjMpwE1hqnvRmMTcltgChxd5wkbqRWB6pKimCHP42+HsqYDbbGXbeW7GEyBoGuFKYdYQmaPaliN5gN6Yyi48Uw2VPZio+TJuDlI3I3PdX1684FMp1uOkY73RnFw+ZCqfjd5/eV60kcvY/xIhr0c1asWBzOumxXQEWFagWbsym4yerQMdqnwRiTjq1Uc4CCP1XMpkQt5LgwWOTXgHASb+Q5DJ42FYoNwgyqqTdeGFXbOE/ZGGtWCkZ9HI9LXweCzhdRpcUQjYnSYhNAM3KwbZmK5Xi+a24k/apEkTuToeE5CBhL4RgJAsLrz8pbJ8EaFGZP/Qr+fN4uUkHgE8unaGS4yto0HOkZSOEcIdEIK8LJimMMK4OhCakaUXm/GRWNkFqRQ5WRKXlS4SDyinA9krvxFekDaHpka7iDYLDKrWrlL5mkfGCu1rz9MNTcIdDKzu4xxXq7wdmVK07ilEzklmKJKuIzLaA4ghEUp0FU2Nauf+jIwdXYm1htVgpB5W/4Clc4hRPl38gNOSCUuBeN2Qs+ECNExLXLndxdD0n2g0pR0P4fYra5BscsGhF2abqFc5nriHKZQebd4mHg6zC1Qfh9ebMgHsSIcJy0b7w8N3l+cc4NM0UXptuGcqh3hNOx0Vmx3t7g6nWMNxLVnKYqEGGN4G+UCuOhn21/j3b7UhTwC7BfJ84riYjxty+dnGBdQkgCgo9R2y5pYrNZKex0Nul+NaGocxxHNb3/trREuosApWCQhOVSaoiqOlQzHTPvbuEscQnHd44FSeH7nROMIOfdQJXsUvgfKuHUuc/AFyZpYzIkg7u8ZGCotLpDOD2buRbr7QXOPatcJvCJpscDJ/vs8T3ebKZvYJPYxWal0LHdpurOLGVZOHKjegmGILmBvY/prAgZGGhatdT9g6jtozNb+QCRfPHuEQfORA+/Wt7knqm2mpVCT0eTqNDrQsTPvQdvJzL0sgCsjYHwhlILUcKp8Z6LXbB08G0GehIayjFWakEpHNrZfpH9lCyBQF9Upp5PvEy+GSOLpIUe+q0S9mxSniUQIMzCkDX7EqtwIjUQKZxmpbCeZasjqPmB7zXsjKm4i6QBJYPyEjJtdQTVddtosqQLxsBk32ffVzijYHXg7yCTz2fxMFidvtZGxKwdh/I29Z2Te0jxfOZpV1TNJUebcUaagcIh5WV6ei5IPKhWQHqCb2guqa4NsjYiQbeKmo0GTDaAz/P7z+971R0Va2qaGg604hqJWEejuXx16NPyBKw2o+zF1owrjWg1DVfVqLhNN8q1qiiK9fbI5esgk7B6esJIWgWWEGpfPQpiTLAgWIzF8fEZtAAL/wxD7RAsNyuF83F/PalwpqjqkyW91GVkYjxHrRQeOjIk+yWb4/jbQlLnVMNK/eKfd9OeAhzimbjWRiQVjtgWD1T5cZqzywIyuStIjo9hCaKAWCAUVGskTdiX5xCIKVThMcRK+TvNSqEndaIfiYUjRjzZqxusFaERJRYcS9O7ldsZQRhIkEdiPMeWQdvJZ+PBcaIaH/ShJ0krDmmFM8Vdh5VjhFVsWpZkiJKkmsPRgeazHhjMOHh282lEI4bpOtqsFBqjNEXPIFV6hqkYKmrUrBTg61wd9SfgIVfp2aUmlY/TTe4se0UqZ7gbLcIRBrpd5Ghhp9vEsOjsEzJHXnqOm6zq3Cpcm3DIO8/F4yapp91RaO1MlIvHSbSLRnBsApKLxylYRCO4do/JxeMEbKIROmdVUeRTdStomXL3g737Il1AHiQ0x1Vu0QgTFkdSrLfnKS1x5HJ5DLFJywhG6v6NCUdsi6dMRex5oFAvq7RgaWwLKaOdpunC5rJeq2WYRXKCje47ZtTihKFMwoV86EqNTItIlLmnC2tbudAFo2HPsq1z8JhlyhG2Ihph0+KEIetTy/r+5xpokQNsTTASJ4QjfkpHrdInH7462aQXq8YV0EuKM8KRFOvtGapdzoOG28D5vRKnLNckzglHkgvITcFInBWOZAQF5LRgJM4LRxLygeYz6ES3KDThjA8zCG+EE4ZmYeczYIVgXZZcmCUlxUvhSMgKSRHNeTAb26RCxiUSjBfWRYXXwumGLNEcfVxZD1slsaz4aFmiyJRwwpA1KpOIyvTh9o1atNlpg8TS8Nmq9COzwomiWG9DSFJUoivzf6aPuFrU4kUiN/6CSDaalYKRLbidQAjxf8P2XBQAjDZvAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAqCAYAAADI3bkcAAAACXBIWXMAAAsSAAALEgHS3X78AAADsElEQVRYhc1ZMXLTQBR98jCUKOQC9qSkSW4QF6GgkivaOBUlThW6iC4dTgkNTk2BVUNhDsBMcoEQHwBinWCZr7wV32vJkhxJ5s1oZEva3bdPb//+XXnGGJSBF8U7AAYA+gB6AA5VsTmAOwDXPKYm8BelKq6IQsJeFAu5EMBxxbpvAIzrJr+WsBfFQvQ8h8yCqu7wkI51M56NSXxcB/FMwnz9EwCBujyn0rmKsVyf1pHDd4iHJvDHTRAWH+4/piHl+dBRXt7O0AT+dS2EvSieKL8+qnJV55C20IqfbqL2EmEvikWRr/wrFjioa8BQcVH7rbp8BWBUpY2UMCu8owpig/5jlc0hPuD4sGrfsK1SpDvq90hVEjZBVmACfypvjkTBsTKjYIVIFHbUnZvA7zVBVoNtztTgLqW0VViHoLBpsnhQesEQqJWeFJWzhPs8xybwCwvVhG8m8G9/v3o2VaQDTlalCc9aIit4CeDN7lPvBd9wzOvnXhT38wpZwjawNzLQcvAcwAWAdybw70jaYpI3CDvOjTYV/gNgj6TF09L2Je91GbVW0GHiUgVHUr94kOcLHoYkjlhX0XNiCQ/Aa9V2yAkLtMZKtOrwdViUIb/H8xc2esZru7z2seJzKRg5tLIrA9B62Br+oILSnwB852853wP4qTpU9bkEnFh+8O+xq7IlbL07wP8Brewoi/CU5/0s37QNDkDr5WEeYWuLopTvds212w2ey4Pl4TNhSqCzNb0cOmlxxssEw+09712ZwE+UTrM1E/ihmiI/M+neGhgx7OBLZ76OQ6jvkJ5s2dN2bHW9KE4i2BLhjAxKlkq/SHxoC7UIPfMmbecu8+npkbMOK8Kc+Yg0NKllWR/FluClCfyRa4kU9LTY4VQpXoQutwY+yIKgKFUsCevj9Qpn9HSHhQ6cKbynjqyNFGlwsKnaXhSPuXBNVkJPyhZkg7N1GV3OXsQhVxKbzqK2o0l9uZbYBNIpid9cE75XVchKIjNdLIGlHL1WwhocAyfqUrhhiEytJOUbI4wH0hOVlPslpv0iNEtYIKFIJTLBuvVaibpmjRMmtH+r5ihLHWyFsJOUdyvGZ+v75C21pTAclc8rTPNW4SRatEaYe3U61E2L9tOYB9t4niRCpWe6uuBslufup7Ez1yQsi4uePNemJSzc/bSZG5/VRqFVN/0+0rrCitBUfTqLGT0WzFOGev/YBH7q960QTht/mK4lYuSlsBE/Wfyb7bZJOCGw+sFSYD9OLidaAP4C9nOgxoMZzqQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABzCAMAAABNVgvhAAAAM1BMVEVMaXH////////////////////////////////////////////////////////////////x7/yuAAAAEHRSTlMAMGDQEPCgwECAIOCQcFCwdW8NlgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAy5JREFUeJzt29tyhCAMANAV5epl9/+/trMrBKiKRoL6QJ46TKlnIESE6euhIT8PDFVZiKgsTDycpZ5SJmRlIaKyMFFZmKgsTFQWJioLE5WFicrCRGVhorIwUVmYqCxMVBYmKgsTlYWJysJEZWGiss7EPaxOqfQjb2Ap0f8eKrrnsDrWw/F7u+26mDXy8FpAPIM19Z84nsAyy/ulzedex9Khp38Iq2kDkzZm/mkz5y9ijQGKwdDxzd+/hNW9AcXZr4E/YCU2fgEO87TZPJvuZDFfP5u5xcyD1W/3Kc8SoNLxQz/sPlYHK7BvXJvNf5noVpjl68IbikFjW5pEv7KsBl6BI7R1dgEMqY5FWZNT8WBkbGIltg+FWbAEQ4I4MIVFWYNThfs9Rx1TPQuyOigMYS13qvdO71IsXxjC6uSWQDqxyrH8ElxTcbPXvwyLrS1Br0qnezEW7PjaNVXqpVOQ5ZNdhimEURVg+WSPtlMoFT1rfQn6bNPbXQuyYFB49DfZ6ghexgJVlOxetVPcC7Hc7uBfvYQ1cCivyFmQVyJTRctyL+c4gZyKH1eRslRatV/by7AkmYqSZffoLYGKkmU/4KPdwUkVJUsuqjiszBapomcFf8qr9nZ9V7IyVAUn0b+H8KpsllJK2ccOUXLDidYZVR6L2XOrduyCAtFF56SnVDms8NyRj76c8pH5U5rUnUARlj+2crVdfRZxcHtFxxpWBPp/G+LlTMMaFwPzXYMiauixRTSbNcGjpb8EMLFrOJdWGSwTfTC42yUR3p+I3S9nepZbc7afq+e/4Zm0lJpljNRplk0svy0wmRlOwrKH/aHi7af0NpbN6/Dwcy4NqbPj4iw7Y32YPtP9LPsijPqo21nGVwMfejGtV7ME1M4gbk/51cGya3P7xqs4a1gbLBaU03tYaxeUdrDoMh7NYstlaPSyvF7NmnMbvpwbNvibOToVluVefo2a9CCDXTNpwqNZK7s/F3RFC89qN1Vnd+0pltBHAuZwGT3lDCL/Z3/xtWOjF8QoLOu9aJMDy9odk7Dg3otLKTRTdGU9h2W0/p45nP/OKsO6LtihNTjHRarX6/UHqH7FnNddrBwAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Physician - Pink - Selected.382c4b45.png\";","module.exports = __webpack_public_path__ + \"img/Users-background-blue.8af29f44.svg\";","module.exports = __webpack_public_path__ + \"img/Physicians-background.c0c7c8c8.svg\";","module.exports = __webpack_public_path__ + \"img/montage-icon-gray.c1661bba.svg\";","module.exports = __webpack_public_path__ + \"img/Download - Light Gray - Selected.d9346c50.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDI6NTEtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDI6NTEtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZTI5Mzc2NjMtNGM5NC1lMjQ4LWJlMjgtMzExYTFkZDQ3OGM4IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OWMwZWE3MjAtODA1NS1jNjQ5LWJjMDMtYjVhNDBhODUxNTljIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6M2RmZjE5M2UtNTA2Ny04YzQ4LWI4YWQtYjI0MTFkYzFlY2ZiIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozZGZmMTkzZS01MDY3LThjNDgtYjhhZC1iMjQxMWRjMWVjZmIiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmUyOTM3NjYzLTRjOTQtZTI0OC1iZTI4LTMxMWExZGQ0NzhjOCIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0Mjo1MS0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz425NSBAAAIKElEQVR42u3d23Uky45EQYhI2SgZNUqKwGLWIxyAfez/noKHTZ1eTd76/vkqre16Mp+h9MZ8CAB+Z24gARrEzXIzCdBABrYEaAEZ2BKgoQxrCdCCMqwlQINZoJYADWVYS4AWmEEtARrMArUALTCDWgI0mAVqAdqHAGZQS4CGsyAtARrMArUADWaBWgI0nAVpAVpghrQEaDgL1BKg4SxIC9BgFqglQMNZkBag4SxIS4CGcz90fF4SoOHcDBafpQRomDRBxGcsAXoNHD53n7sADWdAuAGkBWgw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\"","module.exports = __webpack_public_path__ + \"img/Proofsheet - Green - Selected.ad576fae.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjMzOjI0LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowMzoyOS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowMzoyOS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyODNlZjQ2YS04Yjk4LWZjNDgtOTBkMi1kNmM5ZDQ4MTQ1ZTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjgzZWY0NmEtOGI5OC1mYzQ4LTkwZDItZDZjOWQ0ODE0NWUzIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MjgzZWY0NmEtOGI5OC1mYzQ4LTkwZDItZDZjOWQ0ODE0NWUzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoyODNlZjQ2YS04Yjk4LWZjNDgtOTBkMi1kNmM5ZDQ4MTQ1ZTMiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6MzM6MjQtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ZJPBEAAACsElEQVRYhc2YwXHbMBBFnzO6hx1IqSDqICxBHYQl2BVEhxSgAjITpAOmA+aeg0qgO2Aq+DkAtEEaJAFCsvRnMKaJxfJz9bG7xIMkMrAHdkDprr+4+w85TichKWdMYcr+IKmVVK153ofMd/2daH8AtsBPoAWqpNWZka0kdZJOkkpvTNl3gV8hOtJLBoWksyST+VL9KJ0UzIhwlP+5yZ0jmuQwYfT+o/1uJtSxBxrgY6ImU9C658Qj8AZ7vdXWpaO6aoQ02t4jUSmcuhrv+hep6eUyqAiktgcpWMGMt+gW6LD75RlbIS1u/dNOjKMnw6q/PxXZW6PAymAQ3dxyey10QO2utzg53itZeCULcATYYFmf3GQ9MkpB6XztvHstdrM2K/x1wL8BJ0mNJ+ZuxWYonA8jW1D8ub273zi77KLQeWRPK4i2kp4W7A6XILxhWP9Tf64a+A78jbDr/5aJz3jBeIN1CWtLrCZ/AGesNs2Mfe3sy4RnDJCTDSrsxkzBiYyqONUixmCHjWiPGBJnhtkiBi9Va8P6L9FiZq5kXboK+XlBjgy6mbkmw+8kcsi2LHf6huGm27t1q5BD1gCPiWsemc8YYxwG/2VWlcYl/CW7vSscTWLB8QtW41cY4ybLRIcxhJ9cpUupYMWIV9VP+G8QE6kQYaMr9wZ9830EvjllrP3uKrls1/UGPdmC184c4BMZu/Za6LNBh2twHer3JhIDP3UZbLMLwzL6niiwkjHB2ZGIj7rdoUahhbO1cSNzvGbYZlBgpfd51upGUZyLaDCq0vL57N0QldKO6Q3r+tElnL3r2RwfeyJjgK8jpzU25TVJ1Kb9w0IxiiVbYTffNuQjcK9g2D4enI+KnByeqLFKw/PbekaLIUzqMWasXdiTrmZsQuhyyF7zFHHs+A/Ln+uz+A92uVjyz/iLDQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Download - Green - Selected.3a0628b9.png\";","module.exports = __webpack_public_path__ + \"img/Physician - Pink.7b18d249.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDE0OjA0OjI4LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowMTozOS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowMTozOS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplODRhMzVkMS1jNjAw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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAaCAYAAABYQRdDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTZFOEFDMzhBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDE3OTE0ODRBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFNkU4QUMzNkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFNkU4QUMzN0FEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvKDMbkAAAFtSURBVHjarFXNTcMwFC5R7pgNvEHLmUPLBC0TtBvgDegGgMS96QZhAx85mgmaToAzQXmWPksP4ziu4id9cvRkf/7y/nzz8fUwyzQJdMCg1ZmEO8IB3z3I7dDmakSZImgQOrIz4ZbwQzCElrDIVSoIp8D3RmiYfw7IkHhI6QbrO+GT+X0sneJ7qHfEFygXKVKJtYW60DqQGOabI1TJmHqzGXvuCN8gXlSzMma9SheCUqR//qgk6b/s73HTBaUjRmJqU/F2dboivDDfc7DHZfiRZfqJxW8XK/6KOY843Ecu10xVGyjVMVLDukgjFJOsZjetUfQ+piKm4ppEHVnC/KpKZN/ZlrXo5JLqImonk5ZQK2OkXG0zgdSGbbpHnS6vTJTAGXfWVJE56cle0TE5ptjrEB0oDQvDAR0kEoQbtHnvSevE62kxB9Zs0uvgl1cYzF6lHXuiFVQqEC+B0M7IRZP77mumTgbwQ8aEh34FGABr8Vyj+Ey8GAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAByCAMAAACGCthEAAAAGFBMVEVMaXH////////////////////////////eQubUAAAAB3RSTlMAwEBw0DCQ1YCcvgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAJ1JREFUeJzt0KsRAzEUwEDb+bj/joMCDoo9sFuBRuuzB/qucwfasgJZxT/rfYZ4PW7tNcSRFcgqZBWyClmFrEJWIauQVcgqZBWyClmFrEJWIauQVcgqZBWyClmFrEJWIauQVcgqZBWyClmFrEJWIauQVcgqZBWyClmFrEJWIauQVcgqZBWyClmFrEJWIauQVcgqnlnDyCpkFSOz7t0/oMxMoRV9ttUAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/green-90rotate-icon.7aa7ff60.png\";","module.exports = __webpack_public_path__ + \"img/blue-90rotate-icon-01.58997b17.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjU0QUYxNTBBRDA5MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjU0QUYxNTFBRDA5MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGNTRBRjE0RUFEMDkxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNTRBRjE0RkFEMDkxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiqBxnYAAAKbSURBVHja1FnLbeMwEKUF3a0OolQQ3fcQbQfqIEoFcSpYH7YABchxgWU6UCpY5ZZDgKiDOB3IFWRp4DEZc2WJQ1KWd4CBZZuin+b7hl7cP38THpIpTZXmuL7E5wsxgcSe978y1xdKK6VrpZL7Y5En2EcHsGdKfyvdKC2PCbZWulV6p/Q70SGwWtigx8IgUdoobQ9sKJnuLLDn7vWKgM5t9hkCm8JyF1DBdVuPNMQja7y2vpbNsPFSTCcb/I5XzPYBfQhgVW+JemK0PkWghyzbnADQsq9KmDHbGQvmsmgF7+41j2jgyeZ0fUXKWhmqKUwJdovr9amD7ZDoe9Y9VbCCgP20bgzUFb6sjUUcybFXahR+aVQYjnW3FJMGu0Sv1r2bI7o2b/DQrdFgVrBMAQCc1pyYdTYziAkXaAuqWBpABen72nOJT1zERrdqHOLqp9IXy/irES5BOljHjNGd63/BgmN0UYdKMLDcllg51M/SJwxcJTVi1AZEa1QLG/mgYF0n0WQkRBrhL3moMOgsJoLJKWJIpm8mXYb7jg5WouBzZOUwYAYB2yBZipGKUcKit1jfMHKCJu1TRJ5AIg5z5pOvRgALnCXcWKzre9gHcAQZE5cuLbK8L8kKFPxigBukuO6Ye+8Rq5gU6x/EWjVz0xy6Csi6/pEFThETbKyte+6TtVNPtx0dHzw47dFGcUnmnnYmPPpsTY5xgw6xm8402Wqgu3O1yz6+YRKZ9YwW1YeAk7CuKSw6eBIU/S9AuWClIx+14bijQDlhIMXXSfUbNq2RlD4Fn3W2Zgu2QYc6w/srAn5xwL2ZwSE0qakPcIBgFFHC/ddK38nnQ//W/CF6g+5Y+MQLN8FM0DVzivAC61q6xsbuPnlyuGdP/gowAMKBo4yopT+iAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAHQCAYAAACWQBBDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0xMi0xOFQxNDoxNTo0MS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NTk6MjMtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NTk6MjMtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Yzg0ODAxNjMtM2I4MS0xNTRmLWFjOGEtYzYxMzE1NmUzZDc0IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OTZjYTY5ZDEtMzhlYS02ZjRhLWFjZWQtMzY1YmI4ZWJiZjRiIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTY0YzcwYWEtNDkzMC05YzQxLTllMTEtZTAyYmYyNmRiMWQ5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNjRjNzBhYS00OTMwLTljNDEtOWUxMS1lMDJiZjI2ZGIxZDkiIHN0RXZ0OndoZW49IjIwMTgtMTItMThUMTQ6MTU6NDEtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhlZTIwZDI0LTUwZmItYzg0Yy1hOTQ0LWUyN2RjY2ZmYjI0ZiIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo1OToyMy0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Yzg0ODAxNjMtM2I4MS0xNTRmLWFjOGEtYzYxMzE1NmUzZDc0IiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDE2OjU5OjIzLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsfPx8QAAAbQSURBVHja7dzRjuI4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\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Dark Gray - Selected.95ec4aab.png\";","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Gray.ec37e8bc.png\";","module.exports = __webpack_public_path__ + \"img/AXIS_Favicon_green_32x32.9c75bd1e.png\";","module.exports = __webpack_public_path__ + \"img/reports-icon-gray.cbdb1e4d.svg\";","module.exports = __webpack_public_path__ + \"img/theme3.5b1294f5.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAlCAYAAAAwYKuzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkY3QTMxRDFBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkY3QTMxRDJBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2RjdBMzFDRkFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2RjdBMzFEMEFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pqo219IAAAQhSURBVHjazFjNaxNBFJ/ZxH5YqFnBi6eSnpVIq9aPaippvQZFr42CLerBCMWKIgQPkoqHHKxgTvGaHlx764dYP0AraPMXtBFBPZltRUsLyfre9o1Ot9nNbjaF/uCxbWfnze/93nszs+WPP5xgDoiAhSoswPEXhZWX4FGUX7h+9B0bnz/JXCBE/mToML/gNClo4ygJlgCbQ0JATIzdoEVSYDnmDlHy10H+dFkACA7/roFlgKxei2BEvEwO7ZRI0WJxy4LW9zRSPGlV3pIBUwx4IslNgSsWchmKOOOgiE4L5shpyKY0CuQnYUdOIpmjdePgrypBEW1NZxJyRECzUS5eZcyJJNYjzkFFU1aCGUqbW3IySZ2iF9BI4QKrA0AyQUpGZYIRD0VvRYoIiYYoelHOBnHyaxKMUsHXi4K0fSSFYz8AFTHIIqgYEQQLPn3i/IPU+UXWGJg9IVJcbADBMz4zYQX6MhXUHfY8t8AU/3DYE+tJsy5qsFDlCPKKDiLYcARJypzUiV7hWMN4UviBIu1nSR/bjNgPI41SDjsYfQaljXqOzEtHizN2Tkp1o4CZ0RTpfE1Qa7tVIUGWtG4NDSKYkAmKrSJO6UrRmWrXEOKsjVo6N0OEQz7Tiz407OSgzamQkO5uc9IlQBxlGZs9T6exHAVQb+0lVo22PrsLq2gatD10Qsg1V/MCYTDex5mR85puIqetG83nRnqmStb7YDUsg72VzBWA3GDZCH6BHxfoxuwqrRDYM1Du/M2el5//+arxTeILq5W20y3Kn3tA+GuFKZMKq7ySr/WoGKk9CN89kytlNXP3uPZzU7DbSVBs1I/enz3UpKxdgm+bA6bAG8aA3DIo/eJ3pf25lZjTR1PDMXJsagHTXe9RZxd5GB5psBiYivECZsbneweqvAvj7On/d9ks2BCkcMnO/8rat1hrUL38a/17bm9reNoTQViwC8mAfQIbBitRVlSHYHHsIj0xsCxYv93L7c3778OjU23pmKlHwTySAwX6XXZgSSZDAY46TBmltfdxruxyc1mQ1cM0YXrHfJQdqrjoMIYE74hm8apgF6ky67FbVZqLNkTpNv8tYrlypal0Zn01iR2udE8dDvCmEKSGKTxgSIGIumW0eDUCYSLf7fU+KGNRqqMtaArsfhBQgtOc82mJkKk4GKask4jkq0wX6qnU8YJ02IuCGHnJYJVRkabNDdHbX6NhFiG4CZsmuUDPGUvDqLRb1CaIHQkLDHPG8/BER9mKUd74gOGBEIxPVKm/oY2tyDSV0jgh1Waafrc2hUHEsp5qEElcPfJ6QOHKLcMw8kCMkapZsfDWzjRACR4mkvjObRqLEeEx6/8RqXlKjheP7T6Lrx19kwadYk8+nuqu56NKYdsNw1TwYb3TOaSQ7WQobIfjrwADAKlKbsrJVCMPAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERFRjE5QzVBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERFRjE5QzZBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMjcxNjEwQ0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEREVGMTlDNEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pq7kl88AAAFWSURBVHjalJTBTcNAEEVD5DumAtwBcOZAqABTAaaCpANCB0HijlNBTAWJb9xYOrA7MB0wI72VBit2xpa+LO+u9//9f2bP3r9uZxOfa0EqOHgWzydsHDf9FuwFjSDzEOjCtYNgg/pHwSuEuYdAf3wRhBFFCzbTd4WgAImL4IbFYUDVSlAyby1zZxA4vqrb8baneYDABn3FOnfInaAQPGNFwIrciIiPktVmbEEB5J4qKlFfkY2eqIV8jZCM7xj+nvEddp4s03iaC8EnY/E00b4Gq5aCe+bqfjbJCQs7bAgDpRw3HWq6jbfRshEBaS/8xnwvPQRjHVtRTQU4N5WlwbeJg0DtuUNpd4S8Jmid25o1SniYOwnakeskKr+EcAHhkxIkzgxWlGDoNVzB3C/jOaWtz5uOeQkqGvCDDeOVosp/TGPO+lYmE67r0nRrig3hyHXxL6c/AQYAiQ9a4Eu3kf0AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Add Patient - Green.5766de7d.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAnCAYAAAAW7IaoAAAACXBIWXMAAC4jAAAuIwF4pT92AAAFV0lEQVRogeVb/3HaMBj97Mv/TicIG4RO0GQCe4OQCUomKJkgZIKQCYImKJmgsAFM0GgC90SeqDH68clYtnt9d75cwFiS3/dLT1JSliWdi0TISyIaE5H+W8cW17rMs4+zG+wYiZAjIhpVxljHiog+yjxbt9GzRqSAhIKIbnBdBfx8R0RLNZAyz5bBjXcAkFDg+hbY4jvGtyzzbNukt0GkJEIqAiZEdNekMQMUQQsimg/BgxIh1dimRHTd0iM3GNsiqB8cUmA5iwZWw4VUne+LnETIAu2HeHwIlPFNuZHBS0oi5IyIfkTqbB2q85Myz1ZdNIYwvIxobHW8Y3zOsGYlBR1eBbqycleTpY8CrfC5zLNpwP3BQChWhGTM3ypvtiXyEFIliLF6jZGURMgxwpWPEJ0TVj7rBsm6MCgYJCmrKmKEM+SOF8atolKUuK37M8TrseWMZ9/bcs0JKXj42mNB6oXNzgkzeDEzDzk7ENNKqYl2F55CRee3RePq6dMAp7hc79FIzBEpjJC1QcJqLeaDnLmj8153Z7bDCccC42tEhqVNZXjfHbedEFMnZelwvVd0OEY4GSFMuF7YY5lns4bPH+P5Nq+UGFtQ6RrQvi9/fa1GgwMpKAvfLD+yxr82wQgtwYaBcS0cL6T1EGnpxxieaurHpsyzgxKS0l83s730hy4IUSjzTIWye8ctirAV+usFyvk3ByEqN45jE0KfY1ujEJCGr68RxvdI8deWkF7LPJvH6+opYAC3ls4TQpyzT4o0eJ1rfqXGdtPlZBXEFJavD6FZkzIx3CRBVudAIXGDwsKEka1PlYTuCoP38Mq+xvZs+OoKuYdSxDpTAoyS1LmouLsw/MTYL4xl6ygYlKHddhWOHZhZIsHei1KHO/Wu4CqjKPOsqFnWrurqGojJvxz5Y4P80YmE4wKM3fR+Pz3Fsv4hhrTuAcnlC0rHUT0xJ0LOPTN05W03bc0/WoLJW/cefmFZtIlejYQCRlInQ1eNLlkjuo7WBMpjE3EawVReubAkzSFZlBHMCWcn86u2YfOUQZPCmCFLhKvBeTwHqSVUWUvOvoGE/tOT0E/yzr+E1NLXQZKCCaErob/CQwa/OQPluxEXmGjVF2kKU9nZF5grhCeCZUVC/4AUPySyjKSoAsAWvq6RSHsHLGrtIEQioZsI2UJqeSKi34mQQ6rCTIrCXsFI4Skm9O4pUHhXDsl9h3BlqrAKQ955QgjsFShUTEa25yKFS5ukjDutxfQBWLVL4d14FF6bkqzGteYqzZFgE1T3n6fVfwxYdN35isL75LhNKbxjT45YeJTmtSvZxgLUB9PcSmjFYU8K9KB3w41XIesX54Kp8D5wFF4Q5lKa9dg6U4vRlm1p+JDvUtOHNVx3QUyAwste36kozSaDI4TGFyyGRQXasJXzj1Vdrr5GP3WEDYll09ZVVk+7BGufnDMhRNhwbWCIsqWJoc8dLQWTZYsRZ5181obiikLCFmM1WntZjP1eEmNrZbWVsVNnh2LlaGy2zXg+YgjkzJtYL0rdKWNnYesKr2cDg4beZBi89wueoTeKu/a0WfU517ZVDjGEAawwwVPX9ig+Hp/t0DskOVtFoym8TIVZY4N711AGDmdsDOdyioBnWsOxc4M3w/1ioKstP5cYW1vHOrgQIMQajjm77mMfg6hCLfvOutSoOjgGocHe8Mc+NISkPItEjgAZvcjtFeFyEoGc4LM3wcfrKqe5TNpSCPQxu/mQ1s4Rsrk7513YgIxlqOefdRAVBOnLdwblHYlyhaMFg16Eqhzd0AXKpWdiqwsdPb7GIbiV08H/I1SujeLhRPQHO9q8m2qpSsAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAiCAYAAAAkjjtxAAAACXBIWXMAAAsSAAALEgHS3X78AAADcklEQVRYhe1XsXLaQBBdMemBP2D8BcyQMoUKpcYNrunS0rmlJB2tU1GT5lTjgg9wZvQD9vAFtvQFl1nlbVikO+kkO3GKvBkNErzdfbe3uyciay0JorSYENGSiGIiyonoSETGzocn8iBKC+ZPcbFNBhv+bEWUFtewjcHNlI+8aj9QYtdMIiIWx05WEGAg6gIcKEqLE4Kx8xg2HGwbpcUxSotRw0JXsI+RmGv4YA1sx/brqo8ywxAU2/nQJWwEh2s7Hxo6Z3WJILUsgMPBd+BkFX87JGbts5dFyY7/5pUlYfITmXzE966LTD5hDu5jMvnRx9UXmXxKJs8q3xky+TLEXsXLRN8AmXDWiwA1nEVpMUV2ajvhsct0SSFjJzsf7kLs4eOImFtSNewVq8DBP3J5NDWhA1vUNuFz3cFWRLOPCQ+FQQBfwBPkE+q5SzBORo5p0LiTLSh3doDMNW4xGiVGo3TJrsYUE6Av2DYeYMUG9eXDFiskjJw+iJGcXpCdkZLguuK5utVzj2smSosyK3Y+XKMc4h4BR6SCvgbVk07mq4jmADvd1XJYhAaHzwl8GnR9L5SHkRYcKGAFwa2jDbuVoX656Ubo+M5A08ZdpkQJCcjl0yKWs8rZXEmfhM5vD8op01kwRMtBcMTKL4TivUTESg+ENLcTONwmXE6dS6IqDofBtFL3BrWfV/gjtZCgWsbpavA+cXqV4D5Qondt9ex6gfrrgukseovpsauegCiza/y+1K8C7yJYCdN/GDQy7EDtoHlXwX3Qa0r8S4KviGhPRM88iXAdGuwTInpUvLGHx9/fgXfr4Uhsibt3+dOCZ0T0ANIXIvqM65snwAwiv4MnAV3Y4/cm8OJf4OsGz3c1vvo78mitPYT+dbHW3sFGnhf2F2YO7hifjNtA/xvwL76XDCfIwNeWLGiwzb16lvuZg/vSwW+jnQiWIPdVQgN4gU8O57467ooFyu0CHwKdzCpCuiysDzaIV9txESyZYmE/HAE2KAFBBBvdSLKgp7p5JywwSW6cvlRTPFtr9x2abu9puqsGm7amS9o45Ah4wH2Ca+ExnoG/AU9PmTGmSNIiWPMSJO2gnhM1YWqCZYUHe8YzBPkysgDHIuPjyuKr2a4K1rxH60bSJPitLl7kQ+CsDeHV5vBbIwmc6aG8c7f/f1v7kyCin0MbjNTPTm+nAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Medium Gray - Selected.ff13ddd0.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjM1OjQyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1MDoyOC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1MDoyOC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozZGRiMTg4Ni0zZjg4LWQ1NGUtYmQ0Ny0zOGVhYzZjMDA3ZDAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M2RkYjE4ODYtM2Y4OC1kNTRlLWJkNDctMzhlYWM2YzAwN2QwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6M2RkYjE4ODYtM2Y4OC1kNTRlLWJkNDctMzhlYWM2YzAwN2QwIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozZGRiMTg4Ni0zZjg4LWQ1NGUtYmQ0Ny0zOGVhYzZjMDA3ZDAiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6MzU6NDItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5gHiXuAAACCElEQVRIib2WO2gVQRSGv3u9GA34aCRgkIuIiIJNEIOkULCyUcTCKljYpElhY6FFCgttRGxuJViIELAUUgghgoIGBEF8oYKKsfGJmhQmwmexu7oOuzP3GvGHwy4z55x/zsw/Z7eh8j/QzJ9bIj4jwHngFvAeMLc3wBRwGmgnmVTUG+qx/L2wXepdu8c1dTDI8cuKl+fqUk62Qj2jLvZAUuCzeihGVE7aSxV1GK8iGvgHiatwpEzUUEeA212KZxZ4CPQBw8DWiO9XYDPwqRDD0cTKltSO2g63Qx1Sr0diL1jaulMJonMVBKFdroldUNcVRJ0E0RczqceIWurNmvhxlSawKXEua4Fpsotbhx/AWP4McaA4o8eJilTn1Rl1daKymYrYdyqtoKK5XFUvgGe5PQVeJ6oucA/YF4xtAGgBJ4AHwBPgW5cJ6zBfN9ECLi0zeRnr6yaadRN/iT0VY29jRNuADjDYA8lusm4RYhYgVE1bvVJSzGRCZYWtUR/VKHbUUvduqRfV7xWOJxMkLbPvWRU+qP1loro7UGBK3RsQ9KmH1fuRuInCv+Hvf4Yh4A6wMnIOH8nu2SpgJ9Af8Z0DdlBcmWCVY5HV9YLFcAeq9nximSQL6sEwb90BHzfr2r3ipTpclTOmpo3+KfVUFWeNNN2yGOrQBkaB/cB2YCAff0XWRKeBqyT65E+SeKotrekPAAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Pink - Selected.b9a100fc.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDI6MDYtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDI6MDYtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBjY2FkZDktYjEzOS1jMDQ1LTgyZTAtZDVmYmQ0ZWU5Y2M1IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NDg0ZDM4MzYtYTY4Mi1hYjQ5LWI0ZWQtMTZmMGVlY2FlMzAxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZGViM2FhMGItYzExMS05ZTRhLWJmNzItMmE5YWNlNWM5OTNjIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpkZWIzYWEwYi1jMTExLTllNGEtYmY3Mi0yYTlhY2U1Yzk5M2MiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjYwY2NhZGQ5LWIxMzktYzA0NS04MmUwLWQ1ZmJkNGVlOWNjNSIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0MjowNi0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5ai1xOAAAIHUlEQVR42u3d3VLbMBCAUbzv/87qVWc6naY4xJb35xwmt8WRrC9LgBLry8fgj/Xhw4cPHzd+xBedrW8e2f99GE2ge4fYdYFA83D4XD8INILm+YFAMzlYYg0CLUzWBASacxHCOoFAmwytHQg0pkDrCQItJNbXMiDQCIf1BoEWCqw/Ao0w2A8Q6OYxwN6AQJvSsE8INA68fQOB9iUz9hAE2vSFSCPQDjNedEGgxRl7jECbrrDfINAmKuw9Ao0DinsAgXYwn3Vc/HAvgEA7kBeFuOrncU8g0IPD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\"","module.exports = __webpack_public_path__ + \"img/blue-90rotate-icon.5927d26f.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUQ4MDBCQTBBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUQ4MDBCQTFBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRDgwMEI5RUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRDgwMEI5RkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhJEbx0AAACuSURBVHjaYjx69KgCAwMDCGMDD6AYH8Cn/wMLkEgA4nocCjYCcQABCxqAOB6H3EEWJE4jFgULGAiDBhy+BDuaBU0hOeABDr1gC5gYaAyGjwUfaWD2Q1AyZYJGkAENLHAAJXEmpJRAbfBgNBWNWkA9CwRolA9AZgqALCgA4vM0sOAAEG+gZRDxj6YiogALWqSggwmgiCJgRgC04SBAyAJ7HCUiIQtAxbI/LkmAAAMAOXMctvzDnBgAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Microphone - Blue - Selected.44b81f0e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsSAAALEgHS3X78AAADM0lEQVRogd2asY7iMBCG5wCJYiWyDbSEmuKo3SxvcOwTLPcEt2+w7BtwT3DsG7BvwDZTsxLUQAvNgUSBBOI00ZgNISG2Ew6HT7KIRIL9M+PMeOxv+/0eboFCWhoQ8R4AmgDQ4E/ga4evlwAw5OsBAEzpUwgxTaP/RBbhwbcAoA0AD4Y/8wkAPQDoJxFlJIQFPHNzFB5R5Q0AOiaCtIUgYucCAoL8ZkF/VR9QFoKIDXaB7ykNNo4ZuawQYqBys5IQRKQ50NW1QqVS8Roxn8+9ZsCrEKIT91hOUcQfE1cqFotQKpW8RteGvCBiL5EQn4hr8xQnJlKIRSIkZ8WECuGJbZMIyRP/wSecCOEY0b/GKBXpIqIbvDfMIvSGqNoy6hAcDgNHHAlhl/plwWDjeAi6WNAiXWuGGs9RbDkIYWuYJn7XoOq3ij+Np/wJHCdZCrXdbmG9Xp+95+7uDgoF8xWEr4+2nC/+X6N0HOr1unEHxGq1gtFodPaeWq3mRfsU+qC54lK27LkWIrYunM1eEs8A0iLNYEeU4C0WC+X+Xdf1XEYHco/pVH3pUS6XD0moDxLSlUIawW83mw0sl0vlTna7nZYI+YxOHxHu6I1dvrWy9LYK4tA8yXFKknXcXJhbZZHYhVVGaN6KkJuxyM0IGeRUyy22Iy2iHpXsZCgj+zAYFKl8o5MJ5/N5bYX0jE4fESWlGVUkpZBBUIi/uHYpKDdLmm3LCr90LZuLDXF4Y/csIoQYIiLVWqvj8TjRr9KiJ47JZJJ4YeXjSwhDK60XnWzUlLgVpAbvsmLvjyOx9VULORRLDkJ4c+UtQyI+/DEwGNk7GYop4eUg+LJKFmpb78GM5CTX4k2Vz/86LD2WXAY6IippbFnsYq2wvcVQIexiJ5UVC/gZleRGpvEUJOlBy0TobfRI+MFHC9zsrAhQWVgJIfrsZjPd3qk2RuVNanRtAP2Bj3EiQHOf/Z6j/w+TERnwwfvsSqVIk5MPTRZ0qV2tGZ960EqZjA/V8N7Ec4onIUgABeOeztENSeLzWrxB1ObYo2ulGS/q+jwXjUn14BnvtpIwajSnglVM8ndq9GofpnVWCwDgH0hFNeA2q3fUAAAAAElFTkSuQmCC\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},[_c('v-avatar',{staticClass:\"mr-2\",attrs:{\"size\":\"20\"}},[_c('img',{attrs:{\"src\":require('../../assets/' + _vm.coloredAssetUrls.close)}})]),_vm._v(\"Close\\n\")],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CloseButton.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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CloseButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CloseButton.vue?vue&type=template&id=59d45a0a&\"\nimport script from \"./CloseButton.vue?vue&type=script&lang=js&\"\nexport * from \"./CloseButton.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/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VAvatar,VBtn})\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Refresh - Pink.48f95dd1.png\";","module.exports = __webpack_public_path__ + \"img/Proofsheet - Green.711f3f9a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAACXBIWXMAAC4jAAAuIwF4pT92AAAEdElEQVR4nO3bMW7bVhzH8b8L742v4FyggLt3ceZO7hGUNZuydXW2rvbUzl6aOQbaA9RALxCjJ6ibE7gQ8AQQBCVTXsL38+cDCFAiEXgWv3gin8ij+v2/X6rqu4L+vTtuMf9gZxLg1Tf2IkkETRRBE0XQRBE0UQRNlOMZf8xvVfWP3c4C/PzUEOYE/evjj9/+aW/ytR19/PJk0A45iCJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImqGTqlpX1V9V9dgen6vqqqpOe/ikjhcwBpbhrKo+tajvq+q2jeq8qlZVdVFV37fXFssMzdZdi/VtVb2uqjft8bq9dtJm6kUTNEObgK9H/7eJ/H17ft7CXixBM/Sw49O4HTw/W/InJmiiCJo5trPyw2i2XhxBM8eqvedm6Z+WoHnK2SDoD0v/tATNPsOluvdLX4MuQfOEyzZD3/UwO5eg2eOqHWrct/XpLgiaKZct5s2qxk971qcXR9CMrdoFSg9tZr7r6RMSNEOrdqjRZczlajsGVoMVjYd22DHlbnBtx+IImq2LwfPTXq5/HhM0W92sZOzjGJooaUGvB7cOPY6+Rqt9jV62OzP+be/5NPgBYZ+zwbafR9ueh46zO2mHHOOfZrfHgdt75dYT25y3x7r9GjY+4TltJ0tTMQy3vWl3e8xZs+1lnN1JC3pqJ520GWrOhenr9v637d/D++yectGiejMjll7G2Z2XcFJ4NYrkpi09nbZZa3w2v2qv344i2V4LvG/bsxbbc5a1ehnnoqUHvRrszNs2o42/7tcTa67rNpNtI7luO388o+3a9vrAK9N6Gefipa9ybCO5aV+xUztv1/Ho9lj0es8x59S2NXGSlzLOxXsJy3YPg2PNXT7sCOF+5rbjn4ifs5rQyzgX7SUEfT3z5Gd8+34dcA3w+Nak54TSyzgX7SUEPfc+uKmv+bk3hE5dxHPoT8e9jHPRXkLQc68Ymwpl7gnTVFCHhtLLOBfNT99EETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE2UtJtkN9f7Hn2FbevAbXsZZ3fM0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRjmf8MX8cffxir9MFMzRRBE0UQRNF0EQRNFEETRRBE2WzDv2uql7ZrXSv6u//ARDWxWT7LNKsAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDE6NTAtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDE6NTAtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDY1NTRhNWItODY1MS0zNjRlLWEyMGQtMmZiMzZmMTA5YjFiIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6N2Q3NWM1YzItNjU2Ny00MTRkLTk2NDgtMTlhOGE2NTc1MGJmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTFmMDliNzctOTc3Yy1jNzQyLTg2ZTAtMjgyNzc2ZGIwYjY5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMWYwOWI3Ny05NzdjLWM3NDItODZlMC0yODI3NzZkYjBiNjkiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA2NTU0YTViLTg2NTEtMzY0ZS1hMjBkLTJmYjM2ZjEwOWIxYiIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0MTo1MC0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz43n2HsAAAH7ElEQVR42u3cUZLiQAwEUe5/ac8RBjC2q6TXEfnPtlK5HgJ4HcfxwlrOHncIXIhLEOArjxkAAi3EZcfMAIEWZMEGBBqCLNiAQIuyWAMCDVEWa0CghdkRakCgRVmsAYGGMAs1INDC7Ag1BBrCLNSAQAuzI9QQaJcgzEINCLQ4OyINCLQwO0INgRZmR6gBgRZnR6Qh0BBmkQYEWpwdoQYEWpwdkYZAC7Mj1IBAi7Mj0hBocXZEGhBoce6LjvsCBFqcy8LiLgGBFpOSiLhjQKDXhMO9u3cItDgL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\"","module.exports = \"data:image/png;base64,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YUWJaHg/35a2aTwSASG8KOOczQXWmxAQYggeUZ5RrggCQizBI8o7ypkgIMQU/DuR61GOh2shtqArketRjoBQBkEjcjnKERDKImhEvnblgJiCReR6lHu+29GzL245ez2gqGAR+diV++dfPtOowAVZwKVgEfka5b7Z2tDeozvaNPhdHeBSkIh8XWDNfHl3nZAQTZCIfIxyix5c3SqxY3C7OOBCkIhC7coREmLwHtF2Z83rKLeoe3WEFtvpCMX7v+7sMJJQJulM45OUE30QjPffzhU5DstUFs74barxSer9/YB5XiPa7qwZnQtngnBQFl4jcj3KvZleanySavTmnGepojS8RuRilCMclJ23iGxGucPJxcdRjXBQdt4iMh3lDicXGh2fa/w21dH00tOnAtzzFlGeUY5wUAdeIrpplHt5Nabt/fKecFALXiJaHOVezm1FcxEUdeMlov7ddcJBY/hZiV698/GyQClFf9wkUHVEBFgiIsCSi+9ER5J+dPA6QCW1ZjN2zgAbjHOAJSICLBERYImIAEtEBFgiIsASEQGWiAiwRESAJSICLBERYImIAEtEBFgiIsASEQGWiAiwRESApf8DyhLW07Kc/r8AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Refresh - Green.f57fbd61.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAACXBIWXMAAAsSAAALEgHS3X78AAAC30lEQVRYhc2XsW4iMRCGf0fXm+QJEPcCSHcPkAJq05CaClq6UFIeHW1SUXMNrkPBAxwSL3CIJzjwE/g04l/OsbK7XuBQRlotYu2ZzzPj8Vh573GuKOvqAOrR9I03+nC2UkplMGVdDcAQQAfATkCiIR2+p97o2U3AlHU9AGN5iozSkzKuCaDnjY7hrwemrBOQGg0lhUpZJ2AL8WJVuCQwZZ2svu6N7lVRjn+hX1X2nIAVPVgcHrE4rMrGlehoYnHYYXGopc65S2CXEOZ56h7Ai6wPwHPu4o+emnHTJEkhmLLuUcLgjd7lDJkDaCTamgY7tlTKPNZh8ubJE4B2iiFumA03xMVgTW90Edg+xUggq1SvlYHVKhouk7yUqAx28dFyrtzaY8lS6jEWyGtJPTUKZWBSfx6vCNbhBiiVMrBKRbFIeLA3U4+lQrBMCQttoV0Ak5IxYz5JknIkyXE0vSTXlHUdNgHJ/VkpGI8jOU5W58Cx0lc6jpLACDcL4JKOFEINmaedqu121Q62SUMbts4fJjJDN+S48Tl3gLMuIzTcC+rSisW4yfeK4MlH0FXAIsgMSEKeVKNuAva/5IuyrgXgLdC/lZrkjX7F0SM++jbg7zdvtDqt8Diu7Y1eKuukm/3BT0/e6J+RHrCPE32/szGBnq93WQdKIw8slC/Kun6gZMBva7bSeV1rQ1n3jVDfOSfs2QZih8+SrTmCRWRy/65ceKP39NQk7uHlG4BlhVZ6T33LlLGRI3Lr2DoGUNbJ6lqEyxVv9JpjfjGkKTKJvZZUYBm+PwC67PMLxRst+TMSryvr5qEeyaE435hf23AheWCxZ7Ic2zLE28CLpzc9nRl75bxuqCfLsQ9sjsL0eQcmBkjdj7sF5pgY6zJv9oGiZ+bUmjpa/L+RemGhzm0Ilq3eB+FqR0mbTVhy5zUY0i7ndYNrnOzKOf/vR9e7UyiZ7DH0iO/9py2wqcl/c/mcYAD+AmgzruHTT1N0AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjQ3OjA4LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1OTo0My0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1OTo0My0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxYmU5YjM1NS02YmNlLTE4NDMtOGM3NC00YTg4ZjIxMTI2ZDUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MWJlOWIzNTUtNmJjZS0xODQzLThjNzQtNGE4OGYyMTEyNmQ1IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MWJlOWIzNTUtNmJjZS0xODQzLThjNzQtNGE4OGYyMTEyNmQ1Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxYmU5YjM1NS02YmNlLTE4NDMtOGM3NC00YTg4ZjIxMTI2ZDUiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6NDc6MDgtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz66pHfKAAACg0lEQVRYhc2XMY4iMRBFH2gPAHsC1CdAYg9AwAFI2JiISSdjQ8KZjHQmIp5oDkDAAUDiAow4wcAN/gYuC8s0tN2wK75kdduuKn//tsvuhiRuQMdKiC1wvCUoQKMGsRbwDAyBvREJMbTnHFjUYgUgKaeMJe3tec2uI2khaSupmzkGkrKILSR9Smpl+HRtItnkUg1nRix75jaRbOVSjPqSVjVJxcolq51itJdbM2V9bUlvcpgmqD5LJdas2Bt9YGW7rwwfQJG4z+acdmwlflT0D4HPK/2/gQOQknOOuNTS5TzFnKFKsS7XiR0SCIVYkahaFbFW5sBV2KcaVhE73kTjBvxvxZKRoljrjuN1SPwKVcS2uJRxLwxxG6ASVcQWuJvEPdAhMVVAdR7zQfpcn2kjYayZlTQkHA8dO4STz7mSMsw9b1MNxzeQyz7Ac4iF5LoZPs81fLKJ+dlv5e5m1wbzn25edwnUufOD2/ZjTnlphct3XXuucLeJfZ3gUO9nJIYnBIk5KgX3IPZP0AQGuPuULztgEtjEfYPAh8huYO/TwGdUEsfbFpGNtyuanG6gDeAn8Aq8ReSerG9jfZdurQXQA16AX+YT3tmebJwGsATa1v4SxWnHR9IBeDdy05K+5RVSMQ6BT4ptKMTFs3JTQqCNk79qoI3ZrDmf3CW8EqsmaSKHMI+MgrYY7Qs+snZfn0j6lvRxIQ6SesH7Wu5PS5J6lxSLlfFr7MtU+ApUDJ+bwOfd/MKFHa6xGH8IFI6Jta1zYvKG8OtvZKQPQaCp1TecPjm45ZD6w7LkNGGQNIgkXltb+Il83UtfWNvO6jvr8/G+S9pjTCxOuCQ8l+KhE+xD4mGJ/QXxaJQxxxE6swAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAYAAAC16ufeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjQzOjEyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowMDozNy0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowMDozNy0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjNWJkN2EzOS1mYmRhLTAzNDItYTE4Ny1mZDZiMjc4NjJhOGQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6YzViZDdhMzktZmJkYS0wMzQyLWExODctZmQ2YjI3ODYyYThkIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YzViZDdhMzktZmJkYS0wMzQyLWExODctZmQ2YjI3ODYyYThkIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjNWJkN2EzOS1mYmRhLTAzNDItYTE4Ny1mZDZiMjc4NjJhOGQiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6NDM6MTItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5g3IwEAAAC6ElEQVRYhdWWMW7bQBBFn3wCKicQdAICzgFYKL0ap2altOqcUqXdqXUq1knDA7jgASxAF7DBE1i6waTYWXG8WlIkHcDOBxbi7syf+Ts7XGoiIgRIgcTMq9AhgiyY9+G05at1nGFixKbAFjgCe12b6foGKCP8DZCr7Wg4GVCoPYYEWANLzWXFpWrfEG5aRBCRVERqEcl0bsdMRPYikpu1RNc2+hxyEhHZikgVsacXuD5nKSKFXfcPew0SI1pxPngZiG8b6yBhokXpymVHYfl+p0UPYq7JMxXbJxla3cw8Lwdw3xQGPY4+VbJHkw1ItjScPkVpO1WutHVrLqPWxk/PGr8bJe6ly3Ev8FAccS9hduUfepCW6nsckRDNsR/JLVGxlQpJLhByJV3ya0M9kgdaoCt9KOg+olx/K1x10gGJlrxP6Am+Z7cacK/BPVJcNZc0ggvaL/sY1spJhoozmAGEb95Mmsu86njzT9fJhbE2N8B2xLXlRyEi6RiivU42HXa/6cQUohqRaybuQ3Jqg6E40vRtjWujtY4tza2R0dweta6vB+Yq0Ra0f2Tegwwn/qiiqha/RG1bXB93IVGf8uQ7sg3eMxLt+VKPOOaTy/mfp39W2THIcC0xo/mbmOm8wt04tSV8pFiLFHfsezq+kJ9FbC+Et8ECEDOegZWxh7aF4RD4LfT51nBuInG87zzw8X7zNrHeMAG+APfAQyD4h9p2apsTxxy4Bu6Ar8o5BHEmOh6Bqa7fBXH8euc9ewB+qeDbiO2xQ2gsluf08V3FDH0+CruIqCnu6C4l36nPE+cbbsM959UF+okN8QC84nrrew//b8BPnNjfQRzfsxZ/gBcim+sjNqyg71kf8EXXp8HvznB+Kc++PLZnQ/jN9RY7VcIKdzQWvp9vdCMHE/xW5zuadgHXSgf64ZGmCA2Cz9xC3uJJ17xdzPxa53Nde9b5s9p8vNfIeoiVxpGIlvln+NwOxti/iB+C/0rsX2og3vpZGw2iAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Physician - Blue.a8e97acb.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAACbElEQVRIib2WTahOQRjHf3Ndn4VJZOGzrvJRLKQrWVCyUCxGFhZI+QgLsborRVm46tpcoXwXOwybu1B3oUgiC5SbS1Fu2cgU3QVq9LzmXOc9Zs45b6/86yzeeWbmP//nfZ7/jPLe8z/QKRzKui5v9LsYn7JuLbAV6AaWADND6CPwEngE3PBGfyg7b0ORsu4+cNMbfT1HsAo4C6yuKfgWcMQbPVJGNAwsBPbK6YDjQA8wvsWsOmC3N/peiuh7btMnLahI4bA3ur+JiDtfZgOf2tw4hm3e6NvZeAewqIXFovZySO9wxdwryroZ2Q+purkVC34CF4HeYmUp61YCJ4DNkXXTgGPA0UxRVwVRnzf6UKx8vdHPvdFbgGuJtfuVddMzoipFB0Opl2Ef8CASnwLsyojmVWwiKRgMjRuFN1rSeyCkuYhN1EydYBxwUlk3uYRsCHgYCTWy0VlQJLbyCngLvAnfUJW95PAMWF8Ym5URSVW8AF57o7/W3DCFb6lApzf6Upub56FTgY5/SCJYExkbSRIp6xYr684p6+bUZVDWdSc8Utzk932Um7xAqgvYEYbEQrbXIJkKXE2E75JzbyHsC70woTCxxxt9uoRE1g4AGyPhz8B8b/RoI3Wh4VZESAS9yroBZd26AsFEZZ0BniZIBP1CMqaIPwb5OEGWP6H02SRgebCYFKQnl2Ut0/Q4UdZJ6s6XLK6LH6LSGz3mf01V542+EK7xdjAaLr0mk40+t5R1e4AzwVBbwXupUm90o6TziPaRN1pu0aXhJq0DUXEq/Cd/kSQVFdRJb+0ENgRyeWMI5PRiooPhqZb2SeAX7+PQJfqHa5kAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAABSCAYAAADXYA8CAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDc5OEY1NDhBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDc5OEY1NDlBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzk4RjU0NkFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzk4RjU0N0FEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkN28E0AAANRSURBVHja7J3bcdpAFEAXhn+UCqIOrA4gHeAKIBU4qcCkgpAKDB1QgvjQd6ADuYJABcnusNiKg6UVWsGN9pyZO8YeMXN1OfvQ4tntZVmmHIlthEB6wXsSHZGw+8htiM9xUHHRWMdMx0THUIXFRsdSx1rHvuJac91U6H3c23tY6HgQmuPn3js9YmyLO1Jw0DG3H+Q5TA/zS3iDMh3Kb8E57vpn/mh6wC0SvmBGgu92uI7eGZKhGXf9MxI+BTgMuzAqkREa0n8zH3yiJOUt1863oCURIwpcq2ecU4Z2RJwzHNfiiwpnKetqIkZ2bgj1HmComUfMOqLrGqFZxlh2fAiPrWAuKwazGkP0ytauDRZ27tqUm+Z4ErGKnX2Y2QfQOJeF1YMyPir3pZtcXfZtjQu+PpOb5th3nOtMApGwKOPKsQcFT3PEqm59o/7+vjIkGatgMdvzU3NVlx0iOXogIiIiIgAiAiICICIgIgAiAiAiICIAIgIiAiAiICIAIgIiAiAiICIAIgIiwnke1XE3rjZi1IUcERHoEQEQERARABEBETtKTgkac0BEPyLuBOeX2p8bwTmuB3jkhbE6bt4psZEs7WuzkdZMydsD3GzutUBEP8RK5oFI6ZvfE4E5mhMsIkT0NLSo436J0jh9ozG3OY6E5hgxR2xOIlTC4rRBKdnn5kwQsTmcu9KcISKCCBAREBEAEQERARDxNnzT0WspNl3IERGBHhEAEQERARAREBEAEQERARAREBEAEQERARAREBEAEQERAa4hYhxobWL0kCViEmhtEvS4rohV/8Z9p153CwgJl02VUhTyJ2LucN06sB5iqdy26MhRyA8D26qnFdcNdfzUsQqg+DPltpfNs60Fc0lPIprWv7CyVTGlZC8salxrpjZz4Q9VN81xUCjqI245c1CvG2C6MFKyd+O6eY79gojP+OWM6Tn2lMG/iKaoE9vSoZxVzWEZaoho2Np5AjKWSzijDO2KWJSRYfpffiDh9UQ8yZjYwsOxUX5SMk8N6LSIpzmjKfwHHV+V7DM62pJvZQU0Sw9pybWp8HvZF570xda7l2VZ3TeNOyxgri5bsDcPLw8C7+dgP6+tnVY8Ca37/SUiwnliJfMMk/3/kOMfAQYAaNG49x0IcGAAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Calendar_-_Blue.75a557df.png\";","module.exports = __webpack_public_path__ + \"img/Proofsheet - Pink - Selected.2a73fca0.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Gray - Selected.6b9bf167.png\";","module.exports = __webpack_public_path__ + \"img/gray-90rotate-icon.10d201a6.svg\";","module.exports = __webpack_public_path__ + \"img/Microphone - Blue - Selected.44b81f0e.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Green - Selected.c75c3d11.png\";","module.exports = __webpack_public_path__ + \"img/Download - Blue - Selected.176caf55.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABRCAYAAADWxZSqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkNCRDc0QTFBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkNCRDc0QTJBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQ0JENzQ5RkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQ0JENzRBMEFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pnu/kjUAAANWSURBVHja7JxNctowFIBVhj30BPUN4n0XcU4APQE+Aj0BvkHJTPeFE4SeoGbXXeEGzg3CDSqVR+OmYMsJkhL0fTNvJj8mRM+fpGcx0ruvPz8qSxKJGCgVdKbf8vtMR65jrGMQWW7WOhY6VjoeUKWdXsMoZHrnDx2TCEUyXOv4pqPSMUWV58lkRqKNJBP2HemLdK4h6bCXKZfeOCA1R0cqhLKUKROR4DRXUkNBg0xDktRphCpIw2mZCqa2TkxVPMsknWQaSq0E3YpycvYEs85ku4a0U4/rLpdKIpLYPMnmTHfHZWpjKwV6DIt3i9pTbRMfdKRqv4wCIpPN3D9Wca0CL6TzTCxGsmMyHUoHn8sIm9qsMRbRfWHcWPTlcbcJ87FCFWFHW1jIlJ6Y9lcqzKLvjQh8F+C9s77FRTGK9NJ2h/r0IAuYr1EPmWj3OWsmcM+9IzlTiyfxnaOHhEQeQpApQP3lYhmhtJhSN46mP9OeWf0HPe4znAtkAmQCZAJkAkAmQCZAJkAmAGQCZAJkAkAmQCZAJkAmAGQCZAJkAkAmcA4bCvyQKTcbChLLawpHbUKmAFyrcBszzXakGdMcUDPBn1NjQlCpcAeMbJHJDbmO7x7fz+wYvlX7zZ5z+fre4/ubtubUTO5GCLOT1teROmY0Kmvfl1J4V57e37S1QiY3hDhSZ6Tjk3zt+0gd09YUmdwlNwRpwDaPqJngbDAy+SuQXdQvHKkTIeYpq3Dwd0vFkTpwiSATIBMgEyATADIBMgEyATIBIBMgEyATADIBMgEyATIBIBMgEyATwEtkSiLNTYIe3bDZUJBGmptztjtTkRyps1bNOxyu5IVlZDJNLa6xzUk0R+pUFtetIhuhFpY3v1Lwz8hketek5Tqz0e+XjmUECczVk82FJ2jaWLmVEd035v8ZBsrbuq8ej2EZWLxgQv/7y7xFyMLzjd3IvTzUST5nEnMKS9GvJWaGH9bsajfu1I0dv/J6z9nSwFz5PRzqrVOocCe0vVp6tWFqLD0Omlm2THHRy3QYmjOEahUpJw3tMtWFYsr7n1tE6ibTQahUkgf7jnUTqqh96zIdaiiTvPc6Pqv9KnlsAi1FIvOYXaJKO22fzT1IsVkvOLMLzkelWNV+Nr8FGAC70Y3+CWDKqQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Gray - Selected.97da7dfd.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAABSCAYAAADXYA8CAAAACXBIWXMAAC4jAAAuIwF4pT92AAAEB0lEQVR4nO3d/3HaMBQH8CeO/3EnCBuEDUI3wBOETpB0gtAJSiYITCBGCBM02YBMUDGBeso95wjhh1wb9DX+fu56vV7T9Fn52hby+cl47yWGsa4vIv2oL244n2fPZY/AWDcQkQzsyFc+z1bFH5BrPBhEY91QRMYiMhKR3lnLS28pIjMRWfg8c4eqMdaFr7sFPY7c59nCWDcVkTuAenb5sTOIevULg3uDUGViaxGZ+Dyb7irDWBeuMH+B61/6PBsa6+JufWm8drb/W2NduAK+MIQfwp3gt7HuWUO3bZC+xMa7/hREDeFTC2/DMcKJuS+MVNFHEHU++MQBPeg6zBmB62us9yDqWc4BjnNjrJs0odAmKa6IE96OS7nXD3RUk45eDccc0FJ6HLN6dUusEa6LdbUmHWBJfQ1YzIrBWO8kMeY6dqcw1blrVUlrLIJ4zKuIDI8t7F6I2cbqwSFX+qQixup/ntbEMNbV9TNJWmMn8rHdqCUhfOfzbKZXiGM4T6xJJ+Kyvtx8XtkiMbcpLmbX5MuTlR3aGEJp8XEnwSDu0dK7QDIxQSQ6OQaRIDCIBIFBJAgMIkFgEAkCg0gQGESCwCASBAaRIDCIBIFBJAgMIkFgEAkCg0gQGESCwCAShC5/DGfxYKx7YI378YpIEBhEgsAgEgQGkSAwiASBQayO7z9Xt2YQK9IX8V+BSywaKy0T13HIguuI9Qhtn+8B61ppQynRrm9jwH1WXNixgUGsR3/jF5LtNnMDwA5mL6FZLINYj9C89AqwrtDvO0wfJloj4pYloaaMc8SKtFknYggLQ/0ded+cEYNYHfddqa7HIBIEBpEgMIgEgUEkCAwiQeA64nn80rW82oXte2tamklaI6+IBIFBJAgMIkFgEAkCg0gQGESCwCASBAaRIDCIBIFBJAgMIkFgEAkCg0gQGESCwCASBAaRIMQEEa0zwFkY61p53KnEBHFwmYd+VFuPO4lORJeoa2PdMFF9KcU0VdruLUP/qRPZ32+hrTVawVg3i3wPhL0Ra9LVs/r2yLfricgfY928BYM/juxl8xZ6I3IuWY9u6J9nrJtq2I45Ftg2mZY41qGx7iRvyNX4YTJpjcXrpGFQ0TekQbIWkVmJem7Au3FJ6hqLT80hiG+pimigic8z1/ZBqNN7EHVQR3qm02Hz0GqXY1Svj3VEn2cv2tSRYdwvhHCMWlyTfVrQ3ggjb9NfPTKEp/PlyYqGMawZPl7QcVYRTsrvPs8Qdw24GDsf8YU5ow78NxH5Cb5HxymE8M01gH2fZ3ufoBz6OxDFhyrkKdeb8d6X+hcX/rhvpRv4lKLrsHdpS98phG8Y7nLGujCteAKsMchLB5F20ycscHuYbC4zwdaYZ+4fTMATOCTi/NMAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Gray - Selected.17a47fd0.png\";","module.exports = __webpack_public_path__ + \"img/Close - Gray.9f18d2cd.png\";","module.exports = __webpack_public_path__ + \"img/Exams-background-green.adb7b411.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAqCAYAAADI3bkcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTZGMjJCNkFBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTZGMjJCNkJBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NkYyMkI2OEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NkYyMkI2OUFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgoJNXkAAASZSURBVHjaxFlPaBRXGH9vsrE11GaNrfRQumNEPNUuiIqrNgM2Il6SCvZmXaHXaupBL0I2hYJ66YpFWg92hOLBljZFCoLBbg6JJ3HTgrTQYHLxUP/sCNWAm8z4e+Z79uvrTHZn/0we/JiZN9+8/c1vvu9933srJyYmRD3tb7+z53W5sD8lg74OEbwjhXif3Z4NFlEWQpYtEfyEPq+ecXO5nIjTUrUM/gk6ervkwvBaq/rxEmYZuQi8RKCuLwJTQBEYrZd8KwgXXgPZkP4pIjEDpAm2Is5s3gO+JdIaXrsIKwIuMMA/u3qBGoqp5xxgkNBNUC89RM8XmyFsRfSXGNnHwGekoFtDJY9eKE/2h+lFBRH/Urzwc5FtJWGXPqf+9E6Dqng0lib+mLnKbVK8acLqMx5iLuCQIs02F8G7zhfyHOtTaruTk5PpRglrv33hBvNCftjK6EbwVjDdHZkLrANMbSVOKQ5pTniI/Ez4QoykRHBbtKGtlP4PFT+1GZPfb8xF6iZtMXW1T81ai5+rbW21NT/9e7XLqQZyYlGf+klbzHe79dwrEmibOp9Wvnry1r6HfuoXXFaJtFsvYYdNYW4ShJGSr13pt//Ibtxww/NTV0npAahciEO4JBJqILZXSnn07TfSWy/PrfkUPj1Nt4Zxz6lFWKfUclKEofBqHE6B9Mnv+tffe+B3HuLTYJQ/WxRwImmF0R4BvcAX6mJg55ab8ImzTMChqFoiHVOZD3C4DowB6vw03ToBVICPoM4YtwuCQJ2fUUY4P052/WT3cuynQccI5utBIqxcw8X9GVPhGSN51Gq9dPxe/SgRVX091PeNaYfP3g8cB9ZZltUDKLuvzYH37NhWqQp5jFeLUT6sM082RtBcUApRdI/hXKl2ixE17YRhtz5s3L7c9h9xGNeZEPZ2GOESm48bKXLm2XVAR5+dC3IHWc+AC0KOGBn4f4RHWZq0YxK+rxYm7NpnxOcbIbwrt/1XVpbmowhrt1iylMSP3jW6VgB/0vlfgCY1E1INTkeMEdY0j264xcsvL9kitEArA0H1a1IZLypG0jSbqHYJdnmzWitQwS5oLZYXy9hA0GPB50QV8I5B2m3Ap1vZdGxloHg2jLBnkFbp8i6RPwi8mzBhnnmzUWs6j26OsEBU7nGJ1mLPgDmVmIAnBH1+B7gMfAKsaoFblOshzH3aphXzFEV/B9AJvAK8SlhJxy5gI6CWQOdpxjjZApXHOeFaGyke2wRJ00NZI4XbDBkmwpvA58BuoJn1oVK5T8dSKsaDHvnUUhVdmrJlgZWsDgXvYIOEPV4CWy0OEr4XwdPrQKP7EGaNbrUxwguUgMyYaFRhlUxsq83TklL7LNuqKjY5XtsJ62prlrmG08Q0V0qCsFkixq1RnKR82Eyx4yza4+x92GyvLzHCpsrDMVY3Dp8tkiRcNqa60VprSKqDM7wQSpKwWcJmltpPo/4iW3MuC2GzhNWbgHYI2RJTt0j18X9WHEm2NCnWZ+zpeXQvL/7dnJwC2SzfSFmOputu/UeNInc0xO5nc+WzXAqHFUwOm8JUgI6qRGEaPxdgAFInhmPD/VYhAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjNGQjFBN0RBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjNGQjFBN0VBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyM0ZCMUE3QkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyM0ZCMUE3Q0FEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsCZVBEAAAD0SURBVHjarNS7DcIwEAZgY9GHEbIBoaaADcgGYQRG8Agg0WMmICOQjpIRwgSEDbiTzpJlGePkztJf+BF/utjJ7PxYG6VUD2khgxJumja9QN6E1NKAhXyov4PcCLUSmKugDcYLSONhJQfAZhJrDnRGLAA36CLzHb0qxQWwHSPzG0kAz+EVWdNwEB30sYorZOXdLBYyD/rW+9i2kDvdKIe4Qx+mVuA/+CQkrATRxVQgbDFkOQbRGWtYiM6sdDKiR1yIFFJKACkExysJ4BdSUCWVBDAK0YzfTBbCAbIQLvAXkQBSiJECYgj+lWtJwEdOkD0OfAUYAGNOSuc8HHKTAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Green - Selected.ac4d3433.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Blue.fbe83dcb.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Green - Selected.9a87dcf4.png\";","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Pink.7a399277.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - Gray.9ea8eeb0.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAAC0ElEQVRIibWWT2jTUBzHf+8lTVLXsqerm0oZFVbnNv8UKhNBcMObyFhvjslobwNFJoh6GPgHwYMHN/HgQbDssnnq2M3TdhFhMOyQqUMRkaFTuhlttUma9MlvNKG6bt1s+z0lgb5Pv8l73++PcM6hnEhCZQDQBQChg15hz9u0tVz4SRIAZniEqWXX2AxEEmrUJ5GhlMGPdu4UMid2iR7mIvBgdBSs+qaU7m8VdX8bo1pmLq94HvIIi28LRBJqyCeRuCyQjjvtiti71wUIsNUS2O9c591e+HW4G1bOXtKACotWHYvyCEuWBZGE2usWyNOrQVm62aaU/HfFoGKgeqof1NMxnYvSOR5hkxuCEAIAiSfhHRBtljZ6CyVBttKdPfCt7xbeRYphtAgSUgQyUQ5STt7ZKWgcvwHENMZxzXUg/CbXgrJcCcQWwtj0GCGG9ugvEO4ukZLWoRa5YogtNj0m05zWgWs7oHoXuXi3Q1GKd1alotk0NEzd9xBDG1wD4WH8keNh3MLVVt2raeCSchwZ6KgLD2M13dhCV/LSG0yNLgSF8MRXnVKQ8uElxleIYnbVwo0tdCWqXxnNmFyrGaUgYmQVupTNq2qufIL/rzCaco2BZfxGyRerZqZWIL35EL6xJIJmZr9bnlq4Qjda4Agm8wzF0vJJZH7yS67qIKwPIb2ygIy1ZEgZfGT4tWZW0xW6WT1zwbS8DcNgRxA2o8VhceS9XjUQdhMXpQW7Kpz0Xtby5++903PxT0bFEOwkLEBsW/uZA8L63S2TWGzuN1QCs4uv0LJOpa+r8sCzn/0pncevBGURa6NUamxY5d0Duto9wLko9W1a5c7DhBryu+kEAQjeblfoloaTnsuZvEtZ4JIyuKXh5B9g1O+m15ey+daTDaIZZoJoj1sIyLYcSxn7DviIZT7ngvh42+NWCaAzQIaZEJj/+Fk1WRPG/9YGSAD4AwlgPFZr71JeAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAADIUlEQVRoge1aMW/TQBR+RJUiIUg6tBLQIV2QytQwIC9G9VoW/A+oWA3C/6D5CWbwitpfgPMPUsmLp6ZTB5Z4gAUGUiEkJKSgF17C2fHZZ/vOnKV+UpYoZ39f3rv33r13dxaLBaiCH5kW+2jHCCeq3iVFiB+Z2wBgA8CQPkcFSy4AYAYAKCxwjPB7XQ61hPiRieRPAOBlTR5jEnRW9QGVhPiRieRHADCo+mIOYnxuFUGlhPiRiW7jCbhOXVyhpR0jnIo+p1NChAsAlw2IQBziu/zIHIkuKLQIbWS0wisZDCtgTNbJDQi5QkjEhP6h/wl0NStPDNe1NBIBxGFCnDKxlbPYyxJxv/sQnuweK2OM+HxzufykgFwCtEzWmkwhtMky90Sv+wCe7b2WSnwTH7KEII6Qm2OEG0Fgw7UoxJ4qZloHp+nSBzgWEU5GwfVb3j9XCY4Rii5DjvvsFwmLUMbWYXMXYZDOMWnXEk5AGsBlo9haCFlDdu2kEn2quJNCqIptG9yEED8y9xuqoWTjkKLs2iJ2Y6+WD4sVkpktWwKbFTJssZCEa7UpWqXRxzDcyUr3LcRQ+ISoO26F6IZbIboBhQj3jjTGrEOdiXmbVThGOFu5Vputgg3x9VF3UqX6Pdh9AXu9p9KZlcTSCCshQZWGw8GO2raQIJD736hFzeJYB1YlEa+GR2wX5UzEKtg18SNTEx3/Oj5sHvFaGL3WQhJNbGqx5Fpl5+5j6G7dU8ru1+8f8O3np6KfnTtGuO4zpBt0Hh3o+7zVzwfv4FFP7Tnsy80UPl6/yfvJnG08QLpEoeTYhm7KKD1i2GiZOkYY+JE55g04vxabvDYK3nHhGKGX/pI3VjjhzUbC+L1yITmIeR2fzOqXcTGdohhysXlTK24ZT0nS0kTMnEZv3Jow9zzCiLlSQk8McZEIEDlYMWLGzfJfAivboci8veyFAZdGD9w8IwlzCrEb0UmKEGhm7n5OImZlFlW+VEMdfJeiW10LzakcLy1gBVnXnGyK71aJ9mvMXHMK6nKQfvGMXA+Lse2M5jhuWswDUxl3tFgovUHXGADgD1SPFGtnM64hAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Exams-background.6ec0d2a4.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAAACXBIWXMAAAsSAAALEgHS3X78AAABlklEQVQ4jZVV21HDMBBcZfhHVEA6IFSAqQBUAe4goQKgApIKSAcyFWAqwHSQdHBUIGYz6xkR/Mr9eCzrbm9Xq7NLKeGUcNEWAHwKvp6SNhnARfMAKgA3WtoDKFLwu6G8mYu2c9GeJ2CsAbD7AOCFLADcjyXNlPjkojUu2ryn+0LF2HGVgmdDjUCGAVLwBLjWZoJ0dbUCsE3BN9naaPGWAZS4kMbRRauO2NwRIGPEvVfaPxj/DtlFKyUb9CR4TMG7bA/XLAVfZBJStjUl/FOvy0VyDIs/aGmvAnPJxVjQQS4a9y0BvIvpo2TvBzgC2ko+honRKgVvkuoLwC3vhYvGu1HLBIc4G9JPRViwyZOyoCE++y4d2c2GALLotK8Y5W4io/ziLQcZKJhQ9Hzjgb7KGIzz1lk6+P3oqMh0vqBkHd9rdW7Sv9T6wdajEumOtC7qilKdX5ItO5ez6MB66hnQmstMirZ7vlOSHwAbHfqHbLtJwW9PmaYs9gbgW1ZlMXbO97IdI7R2LuVJ/wONDxZunUP79o8LAL/Ku8Gj9F1zKQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Gray - Selected.646bbc4e.png\";","import bowser from \"bowser\";\r\n\r\nexport const browser = bowser.getParser(window.navigator.userAgent);\r\n\r\nexport const ie = browser.is(\"Internet Explorer\");\r\nexport const ios = browser.is(\"iOS\");\r\nexport const safari = browser.is(\"Safari\");\r\nexport const iosChrome = browser.satisfies({\r\n ios: {\r\n chrome: \">=1\"\r\n }\r\n});\r\nexport const iosSafari = browser.satisfies({\r\n ios: {\r\n safari: \">=1\"\r\n }\r\n});\r\nexport const iosFirefox = browser.satisfies({\r\n ios: {\r\n firefox: \">=1\"\r\n }\r\n});\r\nexport const macSafari = browser.satisfies({\r\n macos: {\r\n safari: \">=1\"\r\n }\r\n});\r\n\r\nexport const iPadBrowser = ((browser.getOS().name == \"macOS\") || (browser.getOS().name == \"iOS\" && browser.getPlatform().type == \"tablet\")) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2;","\r\nimport { SEARCH_BY, PATIENT_TIMESPAN } from \"../config/config.js\";\r\nimport { ie, ios, safari } from \"../helpers/browserDetect\";\r\nimport moment from \"moment\";\r\n\r\nlet modernizr = window.Modernizr;\r\n\r\nexport default {\r\n // window width, in pixels\r\n windowWidth: window.innerWidth,\r\n windowHeight: window.innerHeight,\r\n isFullscreen: false,\r\n\r\n isOpenedInApp: window.isOpenedInApp,\r\n isIE: ie,\r\n isIOS: ios,\r\n isSafari: safari,\r\n hasWebgl: modernizr.webgl,\r\n webglMaxTexture: (function(){\r\n let temp = document.createElement(\"canvas\");\r\n let gl = temp.getContext( \"experimental-webgl\" );\r\n let maxTexture = 0;\r\n if(gl){\r\n maxTexture = gl.getParameter(gl.MAX_TEXTURE_SIZE);\r\n }\r\n return maxTexture;\r\n })(),\r\n\r\n auth: null,\r\n userPrefs: {\r\n fullscreen: null,\r\n patientDateSetting: null,\r\n defaultColorTheme: null,\r\n pageSize: null,\r\n autoPatientExamRefresh: null,\r\n defaultHVF: null,\r\n defaultCirrusView: null,\r\n defaultHVFview: null\r\n },\r\n mfa: {\r\n enabled: false,\r\n secret: null\r\n },\r\n // isIdle = true => the user hasn't interacted with the site recently\r\n isIdle: false,\r\n disableAutoLogout: false,\r\n backgroundTimestamp: 0,\r\n\r\n // currently shown status\r\n status: {\r\n message: null,\r\n level: null,\r\n timeout: 5000\r\n },\r\n // status to show in the next page\r\n delayedStatus: null,\r\n\r\n // details about the site\r\n siteInfo: { axisTitle: \"\" },\r\n isActDirEnabled: null,\r\n userList: [],\r\n knowledgeCenterSettings: {},\r\n videoLibrary: [],\r\n knowledgeCenterVideoSrc: null,\r\n bestPracticesEntries: [],\r\n\r\n // physicians list for DDLs\r\n physicians: [],\r\n // devices list for DDLs\r\n devices: [],\r\n deviceLogs: [],\r\n // device types list for DDLs\r\n devTypes: [],\r\n // device location list for DDLs\r\n devLocations: [],\r\n // procedures list for DDLs\r\n procedures: [],\r\n\r\n patientSearch: {\r\n timespan: PATIENT_TIMESPAN.today,\r\n searchBy: SEARCH_BY.DateIntervals,\r\n dateStart: moment().startOf(\"day\").format(\"YYYY-MM-DD HH:mm:ss\"),\r\n dateEnd: moment().endOf(\"day\").format(\"YYYY-MM-DD HH:mm:ss\"),\r\n keyword: \"\",\r\n advancedSearch: null\r\n },\r\n patientSearchOptions: {\r\n page: 1,\r\n itemsPerPage: 25,\r\n sortBy: [\"ptId\"],\r\n sortDesc: [false],\r\n groupBy: [\"exDateIso\"],\r\n groupDesc: [true]\r\n },\r\n ssoSearch: null,\r\n wasEmrPro: false,\r\n emrProSearchParams: null,\r\n advancedSearchDialog: false,\r\n loadingPatients: false,\r\n patients: [],\r\n totalPatients: -1,\r\n // currently selected patient\r\n patient: null,\r\n loadingExams: false,\r\n exams: [],\r\n selectedExams: [],\r\n // currently selected exam\r\n exam: null,\r\n examToDelete: null,\r\n examToDownload: null,\r\n // containers for deleting/downloading multiple exams at once\r\n examsToDelete: [],\r\n examToEdit: null,\r\n\r\n imageBrowserContext: null,\r\n\r\n imageMap: [],\r\n imageQueue: null,\r\n\r\n imageOrder: [],\r\n\r\n octImageMap: [],\r\n octFullQueue: null,\r\n octSegmentationQueue: null,\r\n\r\n i2kImages: [],\r\n\r\n patientExamMultiviewContext: null,\r\n patientExamMultiviewSelectAll: false,\r\n\r\n proofsheetContext: null,\r\n\r\n stereoContext: null,\r\n sideBySideContext: null,\r\n printPreviewContext: null,\r\n\r\n overlayContext: null,\r\n originalOverlaySettings: null,\r\n loadingMessage: null,\r\n\r\n activeDownload: {\r\n link: null,\r\n text: null\r\n },\r\n\r\n textAnnotationToEdit: null,\r\n\r\n shapeOutlineContext: null,\r\n shapeOutlineSyncContext: null,\r\n\r\n shapeFillContext: null,\r\n shapeFillSyncContext: null,\r\n\r\n placeholderContext: null,\r\n\r\n // stack of open fullscreen browsers\r\n browserStack: [],\r\n // array of exams opened in the patient detail table\r\n openedExams: [],\r\n\r\n showHelpDialog: false,\r\n\r\n videoViewer: null,\r\n\r\n selectedAppPrintImages: null,\r\n isLoadingAppPrintImages: false,\r\n\r\n showDeepDeeDialog: false,\r\n\r\n calledFullscreenToggle: false\r\n};\r\n","import store from \"../store\";\r\nimport router from \"../router\";\r\nimport { limit, logDetailed } from \"./utils\";\r\nimport { setupRefreshPatientLoop, disableRefreshPatientLoop } from \"./patientRefresh\";\r\n\r\nconst events = [\"mousemove\", \"mousedown\", \"keypress\", \"DOMMouseScroll\", \"mousewheel\", \"touchmove\", \"MSPointerMove\"];\r\n\r\n// activity tracking\r\nlet inactiveTimeoutID = 0;\r\n// ms before autologout - default 1 minute\r\nlet inactiveTimeout = 60000;\r\n// maximum rate of kicking the inactivity timer - default 10 second\r\nconst activeLimit = 10000;\r\nexport function setupAutologoutEvents() {\r\n logDetailed(\"idle\", \"setupAutologoutEvents\");\r\n if (inactiveTimeoutID) window.clearTimeout(inactiveTimeoutID);\r\n\r\n events.forEach(e => document.addEventListener(e, startInactiveTimer, false));\r\n\r\n store.commit(\"enableAutoLogout\");\r\n startInactiveTimer();\r\n}\r\nexport function disableAutologoutEvents() {\r\n logDetailed(\"idle\", \"disableAutologoutEvents\");\r\n if (inactiveTimeoutID) window.clearTimeout(inactiveTimeoutID);\r\n\r\n events.forEach(e => document.removeEventListener(e, startInactiveTimer));\r\n\r\n store.commit(\"disableAutoLogout\");\r\n}\r\n\r\nconst startInactiveTimer = limit(() => {\r\n logDetailed(\"idle\", \"startInactiveTimer\");\r\n if (!store.getters.autoLogoutTimer) return;\r\n if (!store.getters.isAuthenticated) return;\r\n if (store.getters.isIdle) return;\r\n if (inactiveTimeoutID) window.clearTimeout(inactiveTimeoutID);\r\n // Database returns inactivity time limit in minutes, so multiply by 60000 to get time in milliseconds.\r\n inactiveTimeout = store.getters.autoLogoutTimer * 60000;\r\n // inactiveTimeout = 60000 // 1min\r\n inactiveTimeoutID = window.setTimeout(goInactive, inactiveTimeout);\r\n goActive();\r\n}, activeLimit);\r\n\r\nfunction goInactive() {\r\n logDetailed(\"idle\", \"goInactive - \" + Date.now());\r\n if (!store.getters.disableAutoLogout) {\r\n store.commit(\"goInactive\");\r\n disableRefreshPatientLoop();\r\n }\r\n}\r\nfunction goActive() {\r\n logDetailed(\"idle\", \"goActive - \" + Date.now());\r\n store.commit(\"goActive\");\r\n}\r\n\r\n// Refresh token management\r\nlet refreshIntervalID = 0;\r\nlet refreshTimeout = 900000; // 15 minutes\r\n//let refreshTimeout = 10000; // 10 seconds\r\nexport function setupRefreshTokenLoop() {\r\n logDetailed(\"idle\", \"setupRefreshTokenLoop\");\r\n if (refreshIntervalID) window.clearInterval(refreshIntervalID);\r\n refreshIntervalID = window.setInterval(refreshAccessToken, refreshTimeout);\r\n}\r\nexport function disableRefreshTokenLoop() {\r\n logDetailed(\"idle\", \"disableRefreshTokenLoop\");\r\n if (refreshIntervalID) window.clearInterval(refreshIntervalID);\r\n}\r\n\r\nexport function refreshAccessToken() {\r\n logDetailed(\"idle\", \"refreshAccessToken\");\r\n if (!store.getters.isAuthenticated) return logout();\r\n if (store.getters.refreshTokenExpirationTime < new Date()) return logout();\r\n return store.dispatch(\"renewToken\").then(() => {\r\n if (refreshIntervalID) {\r\n refreshTimeout = 900000;\r\n // refreshTimeout = 10000;\r\n window.clearInterval(refreshIntervalID);\r\n refreshIntervalID = window.setInterval(refreshAccessToken, refreshTimeout);\r\n }\r\n }).catch(() =>{\r\n logout();\r\n });\r\n}\r\n\r\nexport function refreshAccessTokenFromBackground() {\r\n logDetailed(\"idle\", \"refreshAccessTokenFromBackground\");\r\n if (!store.getters.isAuthenticated) return logout();\r\n if ((new Date().getTime() - (store.getters.backgroundTimestamp + (store.getters.autoLogoutTimer * 60000))) > 0) \r\n {\r\n store.commit(\"displayStatus\", { message: \"App background time exceeded auto logout time. Automatically logging out\", level: \"error\" });\r\n return logout();\r\n }\r\n return store.dispatch(\"renewToken\").then(() => {\r\n refreshTimeout = 900000;\r\n setupRefreshTokenLoop();\r\n setupAutologoutEvents();\r\n if (store.getters.userAutoPatientExamRefresh) setupRefreshPatientLoop();\r\n\r\n }).catch(() =>{\r\n logout();\r\n });\r\n}\r\n\r\nfunction logout() {\r\n logDetailed(\"idle\", \"logout\");\r\n return store.dispatch(\"logout\").then(() => router.push(\"/\"));\r\n}","import { iosChrome, iosFirefox, iosSafari, macSafari } from \"./browserDetect\";\r\nimport { logDetailed } from \"./utils\";\r\n\r\n// A top to bottom rewrite of the filesaver.js library\r\n// simplifies cases where the \"blob\" provided is actually a url\r\n// hopefully resolves some browser detection holes\r\n\r\nconst modernizr = window.Modernizr;\r\nconst canUseMSBlob = \"msSaveOrOpenBlob\" in navigator;\r\n\r\nexport const canSaveBlobs = (function(){\r\n if (!modernizr.blobconstructor) return false;\r\n if (iosFirefox) return false;\r\n if (!(canUseMSBlob || modernizr.bloburls || (modernizr.filereader && modernizr.datauri))) return false;\r\n return true;\r\n})();\r\n\r\nexport function saveBlob (blob, name) {\r\n if (!(blob instanceof Blob)) return console.error(\"Cannot download non-blobs\");\r\n name = name || blob.name || \"download\";\r\n let openCB = getOpenCB();\r\n let loadCB = getLoadCB(blob);\r\n return openCB(blob, name, loadCB);\r\n}\r\n\r\nfunction getOpenCB(){\r\n if (canUseMSBlob) return load_msSaveBlob;\r\n return modernizr.adownload ? open_anchor : open_popup;\r\n}\r\n\r\nfunction getLoadCB(blob){\r\n if (canUseMSBlob) return null;\r\n\r\n if (!shouldUseFileReader(blob) && modernizr.bloburls) return load_blobUrl;\r\n \r\n return canUseFileReader(blob) ? load_fileReader : null;\r\n}\r\n\r\nfunction shouldUseFileReader(blob) {\r\n return iosChrome\r\n || (iosSafari && isImage(blob))\r\n || (macSafari && isOctetStream(blob));\r\n}\r\n\r\nfunction canUseFileReader(blob) {\r\n return modernizr.filereader\r\n && modernizr.datauri\r\n && (blob.size < 32000000 || modernizr.datauri.over32kb);\r\n}\r\n\r\nfunction isImage(blob){\r\n return (blob.type || \"\").toLowerCase().includes(\"image\");\r\n}\r\n\r\nfunction isOctetStream(blob){\r\n return (blob.type || \"\").toLowerCase() === \"application/octet-stream\";\r\n}\r\n\r\nfunction load_msSaveBlob(blob, name) {\r\n logDetailed(\"blobsaver\", \"load_msSaveBlob\", \"saving blob via ms save or open blob\");\r\n navigator.msSaveOrOpenBlob(blob, name);\r\n}\r\n\r\nfunction open_anchor(blob, name, loadCB) {\r\n logDetailed(\"blobsaver\", \"open_anchor\", \"saving blob via anchor tag\");\r\n if (loadCB === null) throw \"cannot download blob\";\r\n var a = document.createElement(\"a\");\r\n a.download = name;\r\n a.rel = \"noopener\"; // tabnabbing\r\n var cb = url => openUrlWithAnchor(url, a);\r\n loadCB(blob, cb);\r\n}\r\n\r\nfunction open_popup(blob, loadCB) {\r\n logDetailed(\"blobsaver\", \"open_popup\", \"saving blob via popup window\");\r\n if (loadCB === null) throw \"cannot download blob\";\r\n var popup = window.open(\"\", \"_blank\");\r\n if (popup) {\r\n popup.document.title =\r\n popup.document.body.innerText = \"downloading...\";\r\n }\r\n var cb = url => openUrlWithPopup(url, popup);\r\n loadCB(blob, cb);\r\n}\r\n\r\nfunction load_blobUrl(blob, cb) {\r\n logDetailed(\"blobsaver\", \"load_blobUrl\", \"loading blob via blob url\");\r\n var url = URL.createObjectURL(blob);\r\n cb(url);\r\n setTimeout(function () { URL.revokeObjectURL(url); }, 4E4); // 40s\r\n}\r\n\r\nfunction load_fileReader(blob, cb) {\r\n logDetailed(\"blobsaver\", \"load_fileReader\", \"loading blob via file reader\");\r\n var reader = new FileReader();\r\n reader.onloadend = function () {\r\n var url = reader.result;\r\n url = iosChrome ? url : url.replace(/^data:[^;]*;/, \"data:attachment/file;\");\r\n cb(url);\r\n };\r\n reader.readAsDataURL(blob);\r\n}\r\n\r\nfunction openUrlWithAnchor(url, a) {\r\n a.href = url;\r\n setTimeout(function () { click(a); }, 0);\r\n}\r\n\r\nfunction openUrlWithPopup(url, popup) {\r\n if (popup) popup.location.href = url;\r\n else window.location.href = url;\r\n popup = null; // reverse-tabnabbing #460\r\n}\r\n\r\n// `a.click()` doesn't work for all browsers (#465)\r\nfunction click(node) {\r\n try {\r\n node.dispatchEvent(new MouseEvent(\"click\"));\r\n } catch (e) {\r\n var evt = document.createEvent(\"MouseEvents\");\r\n evt.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80,\r\n 20, false, false, false, false, 0, null);\r\n node.dispatchEvent(evt);\r\n }\r\n}","import { logDetailed } from \"./utils\";\r\nimport { browser } from \"./browserDetect\";\r\nimport { refreshAccessTokenFromBackground, disableRefreshTokenLoop, disableAutologoutEvents } from \"./idle\";\r\nimport { disableRefreshPatientLoop } from \"./patientRefresh\";\r\nimport store from \"../store\";\r\n//import he from \"he\";\r\nimport router from \"../router\";\r\n\r\nif (window.isOpenedInApp) {\r\n logAppStartupInfo();\r\n \r\n window.checkForAuthenticationInApp = function () {\r\n logDetailed(\"appInterface\", \"window.checkForAuthenticationInApp\");\r\n return store.getters.isAuthenticated;\r\n }\r\n logDetailed(\"appInterface\", \"root\", \"finished setting up methods for app->site communication\",\r\n \"window.checkForAuthenticationInApp\", window.checkForAuthenticationInApp,\r\n \"window.dispatchLoginInApp\", window.dispatchLoginInApp,\r\n \"window.dispatchSearchInApp\", window.dispatchSearchInApp)\r\n}\r\n\r\n// axis://?fn=Robert&ln=Riley\r\n// axis://?uid=kkuser&upass=Password1!&fn=Robert&ln=Riley\r\n\r\nwindow.dispatchSearchInApp = function (query, username, password) {\r\n let search = parseQuery(query);\r\n search.uid = search.uid || username;\r\n search.upass = search.upass || password;\r\n\r\n router.push({path: \"/sso\", query:{\r\n ptdob: search.ptdob,\r\n ptfname: search.ptfname,\r\n ptlname: search.ptlname,\r\n ptid: search.ptid,\r\n uid: search.uid,\r\n upass: search.upass\r\n }})\r\n}\r\n\r\nfunction logAppStartupInfo() {\r\n logDetailed(\"appInterface\", \"root\", \"app to ui communication established\");\r\n logDetailed(\"appInterface\", \"root\", \"browser info\", browser);\r\n}\r\n\r\nconst modmedKeys = {\r\n \"mrn\": \"ptid\",\r\n \"fn\": \"ptfname\",\r\n \"ln\": \"ptlname\",\r\n \"dob\": \"ptdob\",\r\n \"pid\": \"modmed_pid\",\r\n \"vid\": \"modmed_vid\",\r\n}\r\n\r\nfunction parseQuery(query) {\r\n let dict = {};\r\n // query string is expected to be in this format: key1=value1&key2=value2&key3=value3\r\n let pairs = query\r\n // split groups by &\r\n .split(\"&\")\r\n // split pairs by =\r\n .map(group =>\r\n group.split(\"=\")\r\n // each token should be encoded as a uri component\r\n .map(token => token && decodeURIComponent(token)))\r\n // keep each pair with a length of exactly 2, where both elements are not-null\r\n .filter(pair => !!pair && pair.length === 2 && !!pair[0] && !!pair[1]);\r\n\r\n pairs.forEach(pair => {\r\n let key = modmedKeys[pair[0]] || pair[0];\r\n dict[key.toLowerCase()] = pair[1]\r\n });\r\n\r\n return dict;\r\n}\r\n\r\n//function dispatchLoginInApp(ID, password) {\r\n// logDetailed(\"appInterface\", \"window.dispatchLoginInApp\");\r\n// if (store.getters.isAuthenticated) {\r\n// logDetailed(\"appInterface\", \"window.dispatchLoginInApp\", \"already logged in\");\r\n// } else {\r\n// store.commit(\"displayStatus\", { message: \"Logging in automatically\", level: \"\" });\r\n// store.dispatch(\"login\", { ID, password })\r\n// .catch(() => store.commit(\"displayStatus\", { message: \"Automatic login failed.\", level: \"error\", indefinite: true }))\r\n// .finally(() => router.push(\"/\"));\r\n// }\r\n//}\r\n\r\nexport function onSiteInitializedInApp() {\r\n logDetailed(\"appInterface\", \"onSiteInitializedInApp\");\r\n if (window.onSiteInitializedInApp) \r\n {\r\n window.onSiteInitializedInApp();\r\n if (store.getters.isAuthenticated) {\r\n disableRefreshTokenLoop();\r\n disableAutologoutEvents();\r\n disableRefreshPatientLoop();\r\n store.dispatch(\"logout\").then(() => router.push(\"/\"));\r\n }\r\n } \r\n}\r\n\r\nwindow.setBackgroundTimestamp = function () {\r\n logDetailed(\"appInterface\", \"setBackgroundTimestamp\");\r\n store.commit(\"setBackgroundTimestamp\", new Date().getTime());\r\n disableRefreshTokenLoop();\r\n disableAutologoutEvents();\r\n disableRefreshPatientLoop();\r\n}\r\n\r\nwindow.onRefreshTokenInApp = function () {\r\n logDetailed(\"appInterface\", \"onRefreshTokenInApp\");\r\n refreshAccessTokenFromBackground();\r\n}\r\n\r\n// backwards compatibility for app versions < v2.0.43\r\nwindow.setOpenedFromApp = function () {\r\n logAppStartupInfo();\r\n\r\n store.commit(\"setOpenedFromApp\");\r\n\r\n window.setPopupCB = function (cb) { window.openPopupInApp = cb; }\r\n window.setRequestPrintInAppCB = function (cb) { window.requestPrintInApp = cb }\r\n\r\nwindow.openPopupInApp = function (msg) {\r\n window.webkit.messageHandlers.openpopup.postMessage(msg);\r\n }\r\n\r\n window.requestPrintInApp = function (data, resolve) {\r\n window.webkit.messageHandlers.requestPrint.postMessage(JSON.stringify(data));\r\n resolve();\r\n }\r\n\r\n window.setupRefreshTokenCB = function (cb) { window.onRefreshTokenInApp = cb }\r\n}\r\n","import store from \"../store\";\r\nexport default class ImageContextBase {\r\n constructor(exam, componentName, browserName) {\r\n // name of the component to use for the image browser\r\n this.componentName = componentName;\r\n this.browserName = browserName;\r\n\r\n this.exam = exam;\r\n this.ptSrNo = exam.ptSrNo;\r\n this.exSrNo = exam.exSrNo;\r\n this.examMoment = exam.moment;\r\n\r\n this.playIntervalId = 0;\r\n this.playRate = \"1\";\r\n\r\n this.hasWebgl = store.getters.hasWebgl;\r\n }\r\n\r\n startupTask() {\r\n return Promise.resolve();\r\n }\r\n refreshImages(){\r\n return Promise.resolve();\r\n }\r\n clearContext() {\r\n this.pause();\r\n store.commit(\"clearImageQueue\", \"imageQueue\");\r\n }\r\n updateViewSizes() { }\r\n\r\n pause() {\r\n if (this.playIntervalId) {\r\n clearInterval(this.playIntervalId);\r\n this.playIntervalId = 0;\r\n }\r\n }\r\n setPlayInterval(intervalId) {\r\n this.playIntervalId = intervalId;\r\n }\r\n setPlayRate(rate) {\r\n this.pause();\r\n this.playRate = rate;\r\n }\r\n}\r\n\r\n","import ImageContextBase from \"./imageContextBase\";\r\nimport { ANNOTATION_MODES, ANNOTATION_COLORS, GRAYSCALE_MODES, addMode, editMode ,PRELOAD_OPTIONS } from \"../config/config\";\r\nimport { defaultColorSettings, generateFlatImage } from \"../canvas/canvasUtils\";\r\nimport store from \"../store\";\r\nimport { defaultTransform } from \"../canvas/geometry\";\r\nimport { sortImagesByTimespan } from \"../helpers/utils\";\r\nimport Magnifier from \"../canvas/annotations/magnifier\";\r\n\r\nexport default class ImageContext extends ImageContextBase {\r\n constructor(image, images, exam) {\r\n super(exam, \"imageBrowserBody\", \"Image Browser\");\r\n\r\n this.isAnnotating = true;\r\n this.annotationMode = ANNOTATION_MODES.None;\r\n this.annotationColor = ANNOTATION_COLORS.Black;\r\n this.annotationLineWidth = 5.5;\r\n this.annotationTextSize = (store.getters.axis5DefaultFontSize) ? Math.max(Math.min(40 + (store.getters.axis5DefaultFontSize * 10), 100), 10) : 40;\r\n this.annotations = [];\r\n this.activeAnnotation = null;\r\n this.mouseWheelZoom = false;\r\n\r\n this.image = image;\r\n this.images = sortImagesByTimespan(images);\r\n\r\n this.imageMask = null;\r\n this.deepDeeHighlight = false;\r\n this.deepDeeAnnotation = null;\r\n this.showDeepDeeAnnotation = false;\r\n this.diagnosisText = \"\";\r\n this.diagnosisColor = \"\";\r\n\r\n this.isFlipped = false;\r\n this.isFlipped90 = false;\r\n this.isDragLock = false;\r\n\r\n this.transform = defaultTransform();\r\n\r\n this.rgbSettings = null;\r\n this.webglCanvas = this.hasWebgl ? document.createElement(\"canvas\") : null;\r\n this.saveCanvas = document.createElement(\"canvas\");\r\n this.flattenedImageReady = false;\r\n this.imageColorSettings = defaultColorSettings(null, exam.isOptos);\r\n\r\n this.device = store.getters.devices.find(d => d.devSrNo === exam.devSrNo);\r\n this.deviceConfigs = this.device && this.device.configs || [];\r\n this.deviceCalibration = null;\r\n this.defaultZoom = this.device && this.device.defaultZoomFactor || null;\r\n\r\n this.showMeasurementSection = true;\r\n this.showPlaybackToolbar = true;\r\n this.showImageDrawer = true;\r\n\r\n this.magnifier = new Magnifier({});\r\n this.isMagnifying = false;\r\n this.preLoadOption = store.getters.preLoadOption;\r\n\r\n this.shapeFillColor = ANNOTATION_COLORS.Black;\r\n }\r\n\r\n startupTask() {\r\n super.startupTask();\r\n if (this.exam.isOptos) this.toggleRGB();\r\n if (this.device.defaultZoomFactor) this.setDefaultZoom();\r\n return this.refreshImages();\r\n }\r\n\r\n refreshImages() {\r\n if(this.preLoadOption == PRELOAD_OPTIONS.preLoad2Steps){\r\n let mainImages = [];\r\n mainImages.push(this.image);\r\n let images = this.images;\r\n return store.dispatch(\"preLoad_2Steps\", { images, mainImages}); \r\n }\r\n else if(this.preLoadOption == PRELOAD_OPTIONS.preLoadAll){\r\n return store.dispatch(\"preload_all\", this.images); \r\n }\r\n else{ // PreLoadNone\r\n return store.dispatch(\"loadImages_full_thumb\", this.images); \r\n } \r\n }\r\n \r\n selectCalibration(name) {\r\n if (!name) return;\r\n let matchingConfig = this.deviceConfigs.find(v => v.desc === name);\r\n if (!matchingConfig) return;\r\n this.deviceCalibration = matchingConfig;\r\n }\r\n\r\n selectImage(image) {\r\n this.image = image;\r\n this.clearAnnotations();\r\n this.resetAnnotationSettings();\r\n this.isFlipped = false;\r\n this.isFlipped90 = false;\r\n this.resetColorSettings();\r\n this.setFlattenedImageReady(false);\r\n if (this.exam.isOptos) this.toggleRGB();\r\n }\r\n\r\n setDiagnosisText(text) {\r\n this.diagnosisText = text;\r\n }\r\n setDiagnosisColor(color) {\r\n this.diagnosisColor = color;\r\n }\r\n\r\n setImageMask(mask) {\r\n this.imageMask = mask;\r\n }\r\n toggleDeepDeeHighlight() {\r\n this.deepDeeHighlight = !this.deepDeeHighlight;\r\n }\r\n\r\n setDeepDeeAnnotation(annotation) {\r\n this.deepDeeAnnotation = annotation;\r\n }\r\n toggleDeepDeeAnnotation() {\r\n this.showDeepDeeAnnotation = !this.showDeepDeeAnnotation;\r\n }\r\n\r\n // #region annotations\r\n toggleIsAnnotating() {\r\n this.isAnnotating = !this.isAnnotating;\r\n }\r\n resetAnnotationSettings() {\r\n this.annotationMode = ANNOTATION_MODES.None;\r\n this.annotationColor = ANNOTATION_COLORS.Black;\r\n }\r\n clearAnnotationMode() {\r\n this.annotationMode = ANNOTATION_MODES.None;\r\n }\r\n updateAnnotationColor(color) {\r\n this.annotationColor = color;\r\n }\r\n updateAnnotationTextSize(size) {\r\n this.annotationTextSize = size || 40;\r\n if (this.activeAnnotation)\r\n this.activeAnnotation.updateTextSize(size);\r\n }\r\n toggleIsDragLock() {\r\n this.isDragLock = !this.isDragLock;\r\n }\r\n toggleAnnotationMode(mode) {\r\n if (!this.deepDeeHighlight) {\r\n this.clearActiveAnnotation();\r\n if ((this.isFlipped || this.isFlipped90) && (addMode(mode) || editMode(mode))) return;\r\n if (this.annotationMode == mode) this.clearAnnotationMode();\r\n else this.annotationMode = mode;\r\n }\r\n }\r\n setAnnotationMode(mode) {\r\n this.annotationMode = mode;\r\n }\r\n clearAnnotations() {\r\n this.annotations = [];\r\n this.clearActiveAnnotation();\r\n }\r\n clearActiveAnnotation() {\r\n if (this.activeAnnotation) this.activeAnnotation.deactivate();\r\n this.activeAnnotation = null;\r\n }\r\n setActiveAnnotation(annotation) {\r\n this.activeAnnotation = annotation;\r\n }\r\n addAnnotation(annotation) {\r\n this.annotations.push(annotation);\r\n }\r\n deleteAnnotation(index) {\r\n this.annotations.splice(index, 1);\r\n }\r\n updateLineWidth(width) {\r\n this.annotationLineWidth = width;\r\n if (this.activeAnnotation)\r\n this.activeAnnotation.setLineWidth(width);\r\n }\r\n setIsMagnifying(val) {\r\n this.isMagnifying = val;\r\n }\r\n updateMagnifier({offsetX, offsetY, x, y}) {\r\n this.magnifier.updatePosition(\r\n offsetX,\r\n offsetY,\r\n x,\r\n y\r\n );\r\n }\r\n mouseupMagnifier() {\r\n this.magnifier.mouseup();\r\n }\r\n mousedownMagnifier() {\r\n this.magnifier.mousedown();\r\n if (!this.flattenedImageReady) {\r\n generateFlatImage(this);\r\n this.magnifier.saveCanvas = this.saveCanvas;\r\n }\r\n }\r\n\r\n updateShapeFillColor(color) {\r\n this.shapeFillColor = color;\r\n }\r\n // #endregion\r\n\r\n // #region transformations\r\n toggleFlipped() {\r\n if (!this.deepDeeHighlight)\r\n this.isFlipped = !this.isFlipped;\r\n }\r\n toggleFlipped90() {\r\n if (!this.deepDeeHighlight)\r\n this.isFlipped90 = !this.isFlipped90;\r\n }\r\n setInitialAnnotationSizes() {\r\n // Only set initial size if axisSetting for size is not present.\r\n if (!store.getters.axis5DefaultFontSize) {\r\n let zoom = this.transform && this.transform.zoom || 1;\r\n let readableTextSize = Math.min(Math.ceil((20 / zoom) / 10) * 10, 100);\r\n this.annotationTextSize = Math.max(this.annotationTextSize, readableTextSize);\r\n }\r\n }\r\n setTransform(transform) {\r\n this.transform = transform;\r\n }\r\n \r\n toggleMouseWheelZoom() {\r\n this.mouseWheelZoom = !this.mouseWheelZoom;\r\n }\r\n\r\n setDefaultZoom() {\r\n this.defaultZoom = this.device.defaultZoomFactor;\r\n }\r\n\r\n // #endregion\r\n\r\n // #region colorSettings\r\n resetColorSettings() {\r\n this.imageColorSettings = defaultColorSettings(null, this.exam.isOptos)\r\n this.rgbSettings = null;\r\n }\r\n setFlattenedImageReady(ready) {\r\n this.flattenedImageReady = ready;\r\n }\r\n toggleGrayscaleMode(mode) {\r\n if (this.imageColorSettings.grayscaleMode === mode) this.clearGrayscaleMode();\r\n else this.imageColorSettings.grayscaleMode = mode;\r\n }\r\n clearGrayscaleMode() {\r\n this.imageColorSettings.grayscaleMode = GRAYSCALE_MODES.None;\r\n }\r\n updateBrightness(brightness) {\r\n this.imageColorSettings.brightness = brightness;\r\n }\r\n updateContrast(contrast) {\r\n this.imageColorSettings.contrast = contrast;\r\n }\r\n updateGamma(gamma) {\r\n this.imageColorSettings.gamma = gamma;\r\n }\r\n updateGreenBrightness(brightness) {\r\n this.imageColorSettings.greenBrightness = brightness;\r\n }\r\n updateGreenContrast(contrast) {\r\n this.imageColorSettings.greenContrast = contrast;\r\n }\r\n // #endregion\r\n\r\n // #region rgb\r\n startRGB() {\r\n if (this.grayscaleMode === GRAYSCALE_MODES.REC709) this.clearGrayscaleMode();\r\n let view = this.getCurrentRGBIndex();\r\n let isFlipped = this.isFlipped;\r\n let isOptos = this.exam.isOptos;\r\n this.rgbSettings = {\r\n expanded: true,\r\n sync: true,\r\n greenSync: true,\r\n view: view,\r\n views: [\r\n {\r\n ...defaultColorSettings(GRAYSCALE_MODES.None, isOptos),\r\n isFlipped,\r\n index: 0,\r\n alignTop: false,\r\n borderColor: \"white\",\r\n title: \"RGB\",\r\n icon: \"rgb-icon.png\"\r\n },\r\n {\r\n ...defaultColorSettings(GRAYSCALE_MODES.Red, true, isOptos),\r\n isFlipped,\r\n index: 1,\r\n alignTop: false,\r\n borderColor: \"red\",\r\n title: \"Red Channel\",\r\n icon: \"red-icon.png\"\r\n },\r\n {\r\n ...defaultColorSettings(GRAYSCALE_MODES.Green, true, isOptos),\r\n isFlipped,\r\n index: 2,\r\n alignTop: !isOptos,\r\n borderColor: \"green\",\r\n title: \"Green Channel\",\r\n icon: \"green-icon.png\"\r\n }\r\n ]\r\n };\r\n if (!isOptos) {\r\n this.rgbSettings.views.push({\r\n ...defaultColorSettings(GRAYSCALE_MODES.Blue, true, isOptos),\r\n isFlipped,\r\n index: 3,\r\n alignTop: true,\r\n borderColor: \"blue\",\r\n title: \"Blue Channel\",\r\n icon: \"blue-icon.png\"\r\n });\r\n }\r\n }\r\n getRGBIndex(mode) {\r\n switch (mode) {\r\n case GRAYSCALE_MODES.Red: return 1;\r\n case GRAYSCALE_MODES.Green: return 2;\r\n case GRAYSCALE_MODES.Blue: return 3;\r\n default: return 0;\r\n }\r\n }\r\n getCurrentRGBIndex() {\r\n return this.getRGBIndex(this.grayscaleMode);\r\n }\r\n clearRGB() {\r\n this.rgbSettings = null;\r\n }\r\n toggleRGB() {\r\n if (this.rgbSettings) this.clearRGB();\r\n else this.startRGB();\r\n }\r\n toggleRGBSync() {\r\n if (!this.rgbSettings) return;\r\n this.rgbSettings.sync = !this.rgbSettings.sync;\r\n }\r\n toggleGreenSync() {\r\n if (!this.rgbSettings) return;\r\n this.rgbSettings.greenSync = !this.rgbSettings.greenSync;\r\n }\r\n setRGBExpanded(expanded) {\r\n if (!this.rgbSettings) return;\r\n this.rgbSettings.expanded = expanded;\r\n }\r\n selectRGBView(index) {\r\n if (!this.rgbSettings) return;\r\n this.rgbSettings.view = index;\r\n }\r\n replicateCurrentRGBToMain() {\r\n if (!this.rgbSettings) return;\r\n let currentRGB = this.rgbSettings.views[this.rgbSettings.view];\r\n this.isFlipped = currentRGB.isFlipped;\r\n this.imageColorSettings.grayscaleMode = currentRGB.grayscaleMode;\r\n this.imageColorSettings.brightness = currentRGB.brightness;\r\n this.imageColorSettings.contrast = currentRGB.contrast;\r\n this.imageColorSettings.gamma = currentRGB.gamma;\r\n this.imageColorSettings.greenBrightness = currentRGB.greenBrightness;\r\n this.imageColorSettings.greenContrast = currentRGB.greenContrast;\r\n }\r\n replicateMainToCurrentRGB() {\r\n if (!this.rgbSettings) return;\r\n let currentRGB = this.rgbSettings.views[this.rgbSettings.view];\r\n currentRGB.isFlipped = this.isFlipped;\r\n currentRGB.brightness = this.imageColorSettings.brightness;\r\n currentRGB.contrast = this.imageColorSettings.contrast;\r\n currentRGB.gamma = this.imageColorSettings.gamma;\r\n currentRGB.greenBrightness = this.imageColorSettings.greenBrightness;\r\n currentRGB.greenContrast = this.imageColorSettings.greenContrast;\r\n }\r\n replicateMainToAllRGB() {\r\n if (!this.rgbSettings) return;\r\n this.rgbSettings.views.forEach(view => {\r\n view.isFlipped = this.isFlipped;\r\n view.brightness = this.imageColorSettings.brightness;\r\n view.contrast = this.imageColorSettings.contrast;\r\n view.gamma = this.imageColorSettings.gamma;\r\n });\r\n }\r\n replicateGreenMainToAllRGB() {\r\n if (!this.rgbSettings) return;\r\n this.rgbSettings.views.forEach(view => {\r\n view.greenBrightness = this.imageColorSettings.greenBrightness;\r\n view.greenContrast = this.imageColorSettings.greenContrast;\r\n });\r\n }\r\n // #endregion\r\n\r\n}","import ImageContextBase from \"./imageContextBase\";\r\nimport store from \"../store\";\r\nimport { SeriesTypes, EyeMarkers, EyeTypes, ImageFormats } from \"../config/config\";\r\nimport { defaultCollectionBounds, getCollectionBounds as calculateCollectionBounds } from \"../canvas/geometry\";\r\n\r\nexport default class OCTContextBase extends ImageContextBase {\r\n constructor(group, exam, componentName, browserName, imgKey) {\r\n super(exam, componentName, browserName);\r\n\r\n this.group = group;\r\n this.groupName = group.groupName;\r\n this.eye = group.eye;\r\n this.seriesType = group.seriesType;\r\n this.browserType = group.browserType;\r\n this.seriesMoment = group.seriesMoment;\r\n\r\n this.seriesFileName = \"\";\r\n this.referenceImage = null;\r\n\r\n this.enfaceIsReference = false;\r\n this.enfaceImage = null;\r\n\r\n this.hasFoveaOffset = false;\r\n this.foveaOffset = null;\r\n\r\n this.thicknessMap = null;\r\n this.thicknessAnalysis = null;\r\n\r\n this.sliceInfo = null;\r\n this.sliceCurrent = null;\r\n this.sliceBounds = defaultCollectionBounds();\r\n\r\n this.compositeInfo = null;\r\n this.compositeCurrent = null;\r\n this.compositeBounds = defaultCollectionBounds();\r\n\r\n this.hdVertInfo = null;\r\n this.hdVertCurrent = null;\r\n this.hdVertBounds = defaultCollectionBounds();\r\n\r\n this.hdHorzInfo = null;\r\n this.hdHorzCurrent = null;\r\n this.hdHorzBounds = defaultCollectionBounds();\r\n\r\n this.cscanInfo = null;\r\n this.cscanCurrent = null;\r\n this.cscanBounds = defaultCollectionBounds();\r\n\r\n this.collectionKeys = {\r\n data: {\r\n slice: \"sliceCollection\",\r\n composite: \"compositeSliceCollection\",\r\n hdVert: \"hiDefImageCollectionVertical\",\r\n hdHorz: \"hiDefImageCollectionHorizontal\",\r\n cscan: \"slabCollection\"\r\n },\r\n imageType: {\r\n slice: \"bscan\",\r\n composite: \"composite\",\r\n hdVert: \"hidef\",\r\n hdHorz: \"hidef\",\r\n cscan: \"cscan\"\r\n },\r\n segmentationType: {\r\n slice: \"newApiSegmentation\",\r\n composite: \"newApiCompositeSegmentation\",\r\n hdVert: \"newApiHiDefSegmentation\",\r\n hdHorz: \"newApiHiDefSegmentation\",\r\n newApi: \"newApi\"\r\n }\r\n };\r\n\r\n this.octDataLoading = true;\r\n\r\n this.loadComposite = true;\r\n this.loadHD = true;\r\n this.loadCScan = true;\r\n\r\n this.dropdownItems = [];\r\n this.selectedDropdownItem = null;\r\n this.imgKey = imgKey;\r\n this.exams = store.getters.octExams.filter(e => e.browserType === this.exam.browserType);\r\n }\r\n\r\n startupTask() {\r\n super.startupTask();\r\n this.generateOCTDropdown();\r\n return store.dispatch(\"getOCTInfo\", { exSrNo: this.exSrNo, groupName: this.groupName })\r\n .then(data => this.setOCTInfo(data.data))\r\n .then(this.refreshImages);\r\n }\r\n\r\n refreshImages(){\r\n return store.dispatch(\"loadOCTImages\");\r\n }\r\n\r\n clearContext() {\r\n super.clearContext();\r\n store.commit(\"clearImageQueue\", \"octPreviewQueue\");\r\n store.commit(\"clearImageQueue\", \"octFullQueue\");\r\n store.commit(\"clearImageQueue\", \"octSegmentationQueue\");\r\n }\r\n\r\n setOCTInfo(data) {\r\n if (!data) return;\r\n\r\n this.seriesFileName = data.seriesFileName;\r\n this.processImage(data, \"referenceImage\", \"reference\");\r\n\r\n this.enfaceisReference = data.enfaceIsReferenceImage;\r\n this.processImage(data, \"enfaceImage\", \"enface\");\r\n\r\n this.processImage(data, \"thicknessMap\", \"newApiColorMap\");\r\n\r\n this.processThicknessAnalysis(data);\r\n\r\n this.processFovea(data);\r\n\r\n this.processSlices(data, \"slice\", this.foveaOffset.y);\r\n if (this.loadComposite) this.processSlices(data, \"composite\", this.foveaOffset.x);\r\n if (this.loadHD) {\r\n this.processSlices(data, \"hdVert\", this.foveaOffset.y);\r\n this.processSlices(data, \"hdHorz\", this.foveaOffset.x);\r\n }\r\n\r\n if (this.loadCScan) this.processCScan(data, \"cscan\", this.foveaOffset.y);\r\n // bump visual load state completion just a bit, to prevent timing issues when rendering images\r\n setTimeout(() => this.octDataLoading = false, 20);\r\n }\r\n\r\n processImage(data, key, imageType) {\r\n let image = Object.assign({}, data[key]);\r\n if (!data[key]) return;\r\n image.fileName = this.seriesFileName;\r\n image.width = image.pixelWidth || 0;\r\n image.height = image.pixelHeight || 0;\r\n image.imageFormat = image.imageFormat || ImageFormats.Color;\r\n image.keyword = key;\r\n if (image.dimensions) {\r\n image.imageFormat = image.dimensions.imageFormat;\r\n image.width = image.dimensions.pixelWidth;\r\n image.height = image.dimensions.pixelHeight;\r\n }\r\n store.commit(\"storeOCTImages\", { images: [image], context: this, imageType, loadPreviews: false });\r\n store.commit(\"selectOCTImage\", { imgKey: image.imgKey, currentKey: key });\r\n }\r\n\r\n processThicknessAnalysis(data) {\r\n if (data.thicknessAnalysisData) this.thicknessAnalysis = data.thicknessAnalysisData;\r\n }\r\n\r\n processFovea(data) {\r\n this.hasFoveaOffset = data.hasFoveaOffset;\r\n this.foveaOffset = this.hasFoveaOffset ? data.foveaOffset : { x: 0.5, y: 0.5 };\r\n }\r\n\r\n processSlices(data, key, centerOffset) {\r\n let dataKey = this.collectionKeys.data[key];\r\n let collection = data[dataKey];\r\n if (!collection) return;\r\n\r\n let infoKey = key + \"Info\";\r\n this[infoKey] = {\r\n isZeissCross: collection.isZeissCross,\r\n segmentation: collection.segmentation,\r\n sliceHasSegmentation: collection.segmentation && collection.segmentation.layers && collection.segmentation.layers.length,\r\n dimensions: collection.sliceDimensions\r\n };\r\n\r\n let composite = dataKey === \"compositeSliceCollection\";\r\n let rotate = composite && this.seriesType === SeriesTypes.OpticDisc;\r\n let od = this.eye === EyeTypes.OD;\r\n let os = this.eye === EyeTypes.OS;\r\n let imageType = this.collectionKeys.imageType[key];\r\n let segmentationImageType = this.collectionKeys.segmentationType[key];\r\n collection.slices.forEach(image => {\r\n image.keyword = key;\r\n image.imageFormat = ImageFormats.Grayscale;\r\n image.fileName = image.sliceFileName || this.seriesFileName;\r\n image.width = collection.sliceDimensions.pixelWidth;\r\n image.height = collection.sliceDimensions.pixelHeight;\r\n image.imageType = imageType;\r\n image.segmentationImageType = segmentationImageType;\r\n image.vertical = image.startPoint && image.endPoint\r\n && (Math.abs(image.startPoint.x - image.endPoint.x) < 0.0001) || false;\r\n image.eyeMarker = EyeMarkers.None;\r\n\r\n if ((composite && !rotate) || (!composite && image.vertical && od))\r\n image.eyeMarker = EyeMarkers.SI;\r\n else if ((composite && rotate) || (!composite && image.vertical && od))\r\n image.eyeMarker = EyeMarkers.IS;\r\n else if (!composite && !image.vertical && od)\r\n image.eyeMarker = EyeMarkers.TN;\r\n else if (!composite && !image.vertical && os)\r\n image.eyeMarker = EyeMarkers.NT;\r\n });\r\n\r\n let boundsKey = key + \"Bounds\";\r\n this[boundsKey] = calculateCollectionBounds(collection.slices);\r\n\r\n store.commit(\"storeOCTImages\", {\r\n info: this[infoKey],\r\n images: collection.slices,\r\n context: this,\r\n imageType,\r\n segmentationImageType,\r\n loadPreviews: true\r\n });\r\n\r\n let currentKey = key + \"Current\";\r\n let keyword = key;\r\n let initialSlice = Math.floor(collection.slices.length * centerOffset);\r\n if (collection.slices.length)\r\n store.commit(\"selectOCTImage\", { imgKey: collection.slices[initialSlice].imgKey, currentKey, keyword });\r\n }\r\n\r\n\r\n processCScan(data, key, centerOffset) {\r\n let dataKey = this.collectionKeys.data[key];\r\n let collection = data[dataKey];\r\n if (!collection) return;\r\n\r\n let infoKey = key + \"Info\";\r\n this[infoKey] = {\r\n dimensions: collection.slabDimensions\r\n };\r\n\r\n let imageType = this.collectionKeys.imageType[key];\r\n let segmentationImageType = this.collectionKeys.segmentationType[key];\r\n collection.slabs.forEach(image => {\r\n image.keyword = key;\r\n image.imageFormat = ImageFormats.Grayscale;\r\n image.fileName = image.sliceFileName || this.seriesFileName;\r\n image.width = collection.slabDimensions.pixelWidth;\r\n image.height = collection.slabDimensions.pixelHeight;\r\n image.imageType = imageType;\r\n image.segmentationImageType = segmentationImageType;\r\n });\r\n\r\n let boundsKey = key + \"Bounds\";\r\n this[boundsKey] = calculateCollectionBounds(collection.slices);\r\n\r\n store.commit(\"storeOCTImages\", {\r\n info: this[infoKey],\r\n images: collection.slabs,\r\n context: this,\r\n imageType,\r\n loadPreviews: true\r\n });\r\n\r\n let currentKey = key + \"Current\";\r\n let keyword = key;\r\n let initialSlice = Math.floor(collection.slabs.length * centerOffset);\r\n if (collection.slabs.length)\r\n store.commit(\"selectOCTImage\", { imgKey: collection.slabs[initialSlice].imgKey, currentKey, keyword });\r\n }\r\n\r\n\r\n setOCTImage(key, image) {\r\n this[key] = image;\r\n if (!image.imgIsLoading && !image.imgHtmlObject && !image.imgNotFound)\r\n store.dispatch(\"loadOCTImageImmediately\", { image, key, view: this.view });\r\n }\r\n\r\n generateOCTDropdown() {\r\n let ex = this.exams;\r\n let octexamSrNos = ex.map(e => e.exSrNo);\r\n store.dispatch(\"loadExamImageMetadata\", octexamSrNos)\r\n .then(() =>{\r\n let exImages = store.getters.imagesForExams(ex).filter(i => i.imgEye == this.eye && i.imgType != \"IMAGE-SLO\").sort((a, b) => b.exMoment.diff(a.exMoment));\r\n exImages.forEach(e =>{\r\n let item = {};\r\n item.flSrNo = e.flSrNo;\r\n item.imgGroup = e.imgGroup;\r\n item.exSrNo = e.exSrNo;\r\n if(e.hasOwnProperty('imgData') && e.imgData != \"\")\r\n item.octDateButtonText = e.exDateDisplay + \" - \" + e.imgEye + \" \" + e.imgData + \" (\" + e.exSrNo + \") (\" + e.flSrNo + \")\";\r\n else\r\n item.octDateButtonText = e.exDateDisplay + \" - \" + e.imgGroup + \" (\" + e.exSrNo + \") (\" + e.flSrNo + \")\";\r\n \r\n this.dropdownItems.push(item);\r\n });\r\n\r\n //imgKey is not available when generateContextFromEye. (select OD or OS)\r\n if(!this.imgKey){\r\n this.selectedDropdownItem = this.dropdownItems.filter(e => e.exSrNo == this.exSrNo && e.imgGroup == this.group.groupName)[0];\r\n }\r\n else{\r\n let image = store.getters.imageByKey(this.imgKey);\r\n this.selectedDropdownItem = this.dropdownItems.find(e => e.flSrNo == image.flSrNo);\r\n if (!this.selectedDropdownItem)\r\n this.selectedDropdownItem = this.dropdownItems.filter(e => e.exSrNo == this.exSrNo && e.imgGroup == this.group.groupName)[0];\r\n }\r\n });\r\n }\r\n}","import { SliceLayerTypes } from \"../config/config\";\r\nimport { PALETTE_LENGTH } from \"../canvas/canvasUtils\";\r\n\r\nexport function getMeasurementData(index, sliceCurrent, sliceInfo) {\r\n let floor = Math.floor(index);\r\n if (index !== floor) {\r\n let rem = index - floor;\r\n index = floor;\r\n if (rem > 0.5) ++index;\r\n }\r\n\r\n if (sliceCurrent && sliceInfo) {\r\n let thickness = sliceCurrent.sliceSegmentationThicknessData;\r\n if (!thickness) return;\r\n\r\n let layerData = sliceCurrent.sliceSegmentationLayerData;\r\n if (!layerData) return;\r\n\r\n let ilm = layerData[SliceLayerTypes.Ilm];\r\n let rpe = layerData[SliceLayerTypes.Rpe];\r\n if (!ilm || !rpe) return;\r\n\r\n let yInPerPx = 1 / sliceInfo.dimensions.verticalResolution;\r\n let mmPerIn = 25.4;\r\n let umPerMm = 1000;\r\n let text = (yInPerPx * mmPerIn * umPerMm * thickness[index]).toFixed(2);\r\n\r\n return {\r\n index,\r\n thickness: thickness[index],\r\n ilm: ilm[index],\r\n rpe: rpe[index],\r\n convertedThickness: (yInPerPx * mmPerIn * umPerMm * thickness[index]),\r\n thicknessText: text + \" μm\"\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function getDefaultMeasurementIndex(sliceInfo) {\r\n let width = sliceInfo.dimensions && sliceInfo.dimensions.pixelWidth || sliceInfo.pixelWidth || 0;\r\n return width / 2;\r\n}\r\n\r\nexport function calculateThicknessMapAdjustment(minThicknessUm, maxThicknessUm, depthSpacingMm){\r\n let minMm = minThicknessUm / 1000.0;\r\n let maxMm = maxThicknessUm / 1000.0;\r\n let thicknessRangeMm = maxMm - minMm;\r\n let maxIndex = PALETTE_LENGTH - 1;\r\n let thicknessScale = maxIndex / thicknessRangeMm;\r\n let spacingMm = depthSpacingMm;\r\n let slope = spacingMm * thicknessScale;\r\n let offset = minMm / spacingMm * -1;\r\n\r\n return { slope, offset };\r\n}\r\n\r\nexport function getThicknessMapSize(context) {\r\n let minX = 0.5, maxX = 0.5, minY = 0.5, maxY = 0.5;\r\n\r\n if (context.sliceInfo) {\r\n minX = Math.min(minX, context.sliceBounds.minX);\r\n maxX = Math.max(maxX, context.sliceBounds.maxX);\r\n minY = Math.min(minY, context.sliceBounds.minY);\r\n maxY = Math.max(maxY, context.sliceBounds.maxY);\r\n }\r\n if (context.compositeInfo) {\r\n minX = Math.min(minX, context.compositeBounds.minX);\r\n maxX = Math.max(maxX, context.compositeBounds.maxX);\r\n minY = Math.min(minY, context.compositeBounds.minY);\r\n maxY = Math.max(maxY, context.compositeBounds.maxY);\r\n }\r\n\r\n return { w: maxX - minX, h: maxY - minY };\r\n}\r\n\r\nexport function setOCTButtonText(exam, eye = \"\") {\r\n if (eye == \"\") \r\n {\r\n if (exam.odGroups.length > 0) {\r\n // Only cirrus exams have eye type appended to groupSeriesType text. Append eye for other types\r\n if (exam.odGroups[0].browserType != 1)\r\n setButtonTextWithEye(exam, exam.odGroups[0]);\r\n else\r\n setButtonText(exam, exam.odGroups[0]);\r\n }\r\n else if (exam.osGroups.length > 0) {\r\n if (exam.osGroups[0].browserType != 1)\r\n setButtonTextWithEye(exam, exam.osGroups[0]);\r\n else\r\n setButtonText(exam, exam.osGroups[0]);\r\n }\r\n }\r\n else \r\n {\r\n if (exam.odGroups.length > 0 && eye == \"OD\") {\r\n // Only cirrus exams have eye type appended to groupSeriesType text. Append eye for other types\r\n if (exam.odGroups[0].browserType != 1)\r\n setButtonTextWithEye(exam, exam.odGroups[0]);\r\n else\r\n setButtonText(exam, exam.odGroups[0]);\r\n }\r\n else if (exam.osGroups.length > 0 && eye == \"OS\") {\r\n if (exam.osGroups[0].browserType != 1)\r\n setButtonTextWithEye(exam, exam.osGroups[0]);\r\n else\r\n setButtonText(exam, exam.osGroups[0]);\r\n }\r\n }\r\n}\r\n\r\nfunction setButtonText(exam, groupItem) \r\n{\r\n exam.octDateButtonText = exam.dateDisplay + \" - \" + groupItem.groupSeriesType + \" (\" + exam.exSrNo + \")\";\r\n}\r\n\r\nfunction setButtonTextWithEye(exam, groupItem) \r\n{\r\n exam.octDateButtonText = exam.dateDisplay + \" - \" + groupItem.eye + \" \" + groupItem.groupSeriesType + \" (\" + exam.exSrNo + \")\";\r\n}","import OCTContextBase from \"./octContextBase\";\r\nimport { octColorSettings, generatePalette, octThicknessGradient, zeissThicknessGradient, heidelbergThicknessGradient } from \"../canvas/canvasUtils\";\r\nimport { calculateThicknessMapAdjustment, getThicknessMapSize } from \"./octUtils\";\r\nimport { defaultSize } from \"../canvas/geometry\";\r\n\r\nexport default class VolumeContextBase extends OCTContextBase {\r\n constructor(group, exam, componentName, browserName, imgKey) {\r\n super(group, exam, componentName, browserName, imgKey);\r\n\r\n this.octColorSettings = octColorSettings();\r\n this.thicknessMapColorSettings = null;\r\n\r\n this.slicePalette = octThicknessGradient;\r\n this.isSpectralisVolume = browserName.toLowerCase().includes(\"spectralis\") && (this.group.groupName.toLowerCase().includes(\"volume\") || this.group.groupName.toLowerCase().includes(\"cube\"));\r\n this.thicknessMapPalette = this.isSpectralisVolume ? heidelbergThicknessGradient : zeissThicknessGradient;\r\n\r\n this.showSegmentation = false;\r\n\r\n this.thicknessMapOpacity = 0.5;\r\n this.thicknessMapMinThicknessUm = 0;\r\n this.thicknessMapMaxThicknessUm = 500;\r\n this.thicknessMapThicknessStepUm = 100;\r\n\r\n this.relativeMapSize = defaultSize();\r\n }\r\n\r\n setOCTInfo(data) {\r\n super.setOCTInfo(data);\r\n\r\n if (this.thicknessMap) {\r\n let colorPalette = generatePalette(this.thicknessMapPalette);\r\n let linearAdjustment = calculateThicknessMapAdjustment(this.thicknessMapMinThicknessUm, \r\n this.thicknessMapMaxThicknessUm, this.thicknessMap.depthSpacingMm);\r\n this.thicknessMapColorSettings = { colorPalette, linearAdjustment };\r\n }\r\n\r\n this.relativeMapSize = getThicknessMapSize(this);\r\n }\r\n\r\n toggleInverted() {\r\n this.octColorSettings.isInverted = !this.octColorSettings.isInverted;\r\n if (this.octColorSettings.isInverted) this.octColorSettings.colorPalette = null;\r\n }\r\n toggleColorPalette() {\r\n this.octColorSettings.isInverted = false;\r\n if (this.octColorSettings.colorPalette) this.octColorSettings.colorPalette = null;\r\n else this.octColorSettings.colorPalette = this.getSlicePalette();\r\n }\r\n\r\n toggleSegmentation() {\r\n this.showSegmentation = !this.showSegmentation;\r\n }\r\n\r\n updateThicknessMapOpacity(opacity) {\r\n this.thicknessMapOpacity = opacity;\r\n }\r\n\r\n getSlicePalette() {\r\n return generatePalette(this.slicePalette);\r\n }\r\n}","import VolumeContextBase from \"./volumeContextBase\";\r\nimport { getDefaultMeasurementIndex, getMeasurementData } from \"./octUtils\";\r\n\r\nexport default class SpectralisContext extends VolumeContextBase {\r\n constructor(group, exam, imgKey) {\r\n super(group, exam, \"spectralisBrowserBody\", \"Spectralis Browser\", imgKey);\r\n \r\n this.loadComposite = false;\r\n this.loadHD = false;\r\n\r\n this.isMeasuring = false;\r\n this.measureData = null;\r\n\r\n this.showThicknessMap = false;\r\n\r\n this.thicknessMapMaxThicknessUm = 600;\r\n\r\n this.drawAllSlices = true;\r\n }\r\n \r\n toggleMeasuring() {\r\n if (!this.isMeasuring){\r\n this.setDefaultMeasurement();\r\n if (this.measureData) this.isMeasuring = true;\r\n } else {\r\n this.measureData = null;\r\n this.isMeasuring = false;\r\n }\r\n }\r\n setDefaultMeasurement(){\r\n let index = getDefaultMeasurementIndex(this.sliceInfo);\r\n this.setMeasurementIndex(index);\r\n }\r\n setMeasurementIndex(index) {\r\n this.measureData = getMeasurementData(index, this.sliceCurrent, this.sliceInfo);\r\n }\r\n toggleShowThicknessMap(){\r\n if (this.showThicknessMap) {\r\n this.showThicknessMap = false;\r\n this.drawAllSlices = true;\r\n } else {\r\n this.showThicknessMap = true;\r\n this.drawAllSlices = false;\r\n }\r\n }\r\n}","import VolumeContextBase from \"./volumeContextBase\";\r\nimport store from \"../store\";\r\nimport { COLOR_TYPE } from \"../config/config\";\r\n\r\nexport default class CirrusContext extends VolumeContextBase {\r\n constructor(group, exam) {\r\n super(group, exam, \"cirrusBrowserBody\", \"Cirrus Browser\");\r\n\r\n this.showHD = false;\r\n this.showETDRS = true;\r\n \r\n if (store.getters.userPrefCirrusView == COLOR_TYPE.color)\r\n this.toggleColorPalette();\r\n }\r\n\r\n getSliceDimensions(sliceInfo) {\r\n let sliceDimensions = sliceInfo && sliceInfo.dimensions || {};\r\n return { w: sliceDimensions.pixelWidth || 0, h: sliceDimensions.pixelHeight || 0 };\r\n }\r\n\r\n toggleHD() {\r\n this.showHD = !this.showHD;\r\n }\r\n\r\n centerFovea() {\r\n let numSlices = store.getters.slices.length;\r\n let sliceIndex = Math.floor(numSlices * this.foveaOffset.y);\r\n let numCompositeSlices = store.getters.composites.length;\r\n let compositeCurrentIndex = Math.floor(numCompositeSlices * this.foveaOffset.x);\r\n\r\n store.dispatch(\"selectOCTImageByIndex\", {\r\n currentKey: \"sliceCurrent\",\r\n collectionKey: \"slices\",\r\n keyword: \"slice\",\r\n index: sliceIndex\r\n });\r\n store.dispatch(\"selectOCTImageByIndex\", {\r\n currentKey: \"compositeCurrent\",\r\n collectionKey: \"composites\",\r\n keyword: \"composite\",\r\n index: compositeCurrentIndex\r\n });\r\n }\r\n\r\n toggleETDRS() {\r\n this.showETDRS = !this.showETDRS;\r\n }\r\n}","import OCTContextBase from \"./octContextBase\";\r\nimport store from \"../store\";\r\nimport { octThicknessGradient, octColorSettings, generatePalette } from \"../canvas/canvasUtils\";\r\nimport { COLOR_TYPE } from \"../config/config\";\r\n\r\nexport default class RasterContext extends OCTContextBase{\r\n constructor(group, exam, imgKey){\r\n super(group, exam, \"rasterBrowserBody\", \"Cirrus Browser\", imgKey);\r\n \r\n this.loadComposite = false;\r\n this.loadHD = false;\r\n\r\n this.octColorSettings = octColorSettings();\r\n\r\n this.slicePalette = octThicknessGradient;\r\n\r\n if (store.getters.userPrefCirrusView == COLOR_TYPE.color)\r\n this.toggleColorPalette();\r\n }\r\n\r\n toggleInverted() {\r\n this.octColorSettings.isInverted = !this.octColorSettings.isInverted;\r\n if (this.octColorSettings.isInverted) this.octColorSettings.colorPalette = null;\r\n }\r\n toggleColorPalette() {\r\n this.octColorSettings.isInverted = false;\r\n if (this.octColorSettings.colorPalette) this.octColorSettings.colorPalette = null;\r\n else this.octColorSettings.colorPalette = this.getSlicePalette();\r\n }\r\n getSlicePalette() {\r\n return generatePalette(this.slicePalette);\r\n }\r\n}","import OCTContextBase from \"./octContextBase\";\r\nimport { octColorSettings, generatePalette, octThicknessGradient, heidelbergThicknessGradient, zeissThicknessGradient, heidelbergDifferenceGradient, calculatePixelDifference } from \"../canvas/canvasUtils\";\r\nimport { getDefaultMeasurementIndex, getMeasurementData, calculateThicknessMapAdjustment, getThicknessMapSize } from \"./octUtils\";\r\nimport { defaultSize } from \"../canvas/geometry\";\r\nimport store from \"../store\";\r\n\r\nexport default class SpectralisComparisonViewContext extends OCTContextBase {\r\n constructor(group, exam, view) {\r\n super(group, exam, \"spectralisComparisonView\");\r\n\r\n this.view = view;\r\n\r\n this.loadImages = false;\r\n this.loadComposite = false;\r\n this.loadHD = false;\r\n\r\n this.octColorSettings = octColorSettings();\r\n this.slicePalette = octThicknessGradient;\r\n\r\n this.showThicknessMap = true;\r\n this.thicknessMapColorSettings = null;\r\n this.thicknessMapPalette = this.groupName.toLowerCase().includes(\"volume\") || this.groupName.toLowerCase().includes(\"cube\") ? heidelbergThicknessGradient : zeissThicknessGradient;\r\n this.thicknessMapMinThicknessUm = 0;\r\n this.thicknessMapMaxThicknessUm = 600;\r\n this.thicknessMapThicknessStepUm = 100;\r\n this.thicknessMapOpacity = 1.0;\r\n\r\n this.relativeMapSize = defaultSize();\r\n\r\n this.hasDifferenceMap = false;\r\n this.otherExSrNo = null;\r\n this.alignFoveas = null;\r\n\r\n this.differenceCanvas = null;\r\n this.differenceMapColorSettings = null;\r\n this.differenceMapMinThicknessUm = -100;\r\n this.differenceMapMaxThicknessUm = 100;\r\n this.differenceMapThicknessStepUm = 50;\r\n this.differenceMapPalette = this.groupName.toLowerCase().includes(\"circle\") || this.groupName.toLowerCase().includes(\"star\") ? null : heidelbergDifferenceGradient;\r\n this.differenceMapOpacity = 1.0;\r\n\r\n this.showSegmentation = false;\r\n this.isMeasuring = false;\r\n this.measureData = null;\r\n }\r\n\r\n startupTask() {\r\n return store.dispatch(\"getOCTInfo\", { exSrNo: this.exSrNo, groupName: this.groupName })\r\n .then(data => this.setOCTInfo(data.data));\r\n }\r\n\r\n setOCTInfo(data) {\r\n super.setOCTInfo(data);\r\n\r\n if (this.thicknessMap) {\r\n let colorPalette = generatePalette(this.thicknessMapPalette);\r\n let linearAdjustment = calculateThicknessMapAdjustment(this.thicknessMapMinThicknessUm,\r\n this.thicknessMapMaxThicknessUm, this.thicknessMap.depthSpacingMm);\r\n this.thicknessMapColorSettings = { colorPalette, linearAdjustment };\r\n\r\n // calculate the thickness map here in case the image was loaded previously\r\n if (this.thicknessMap.imgHtmlObject && this.differenceMapPalette) this.loadThicknessMap(this.thicknessMap);\r\n }\r\n this.relativeMapSize = getThicknessMapSize(this);\r\n\r\n if (this.loadImages)\r\n this.refreshImages();\r\n }\r\n\r\n refreshImages() {\r\n return store.dispatch(\"loadOCTImagesForMultiview\");\r\n }\r\n\r\n toggleSegmentation() {\r\n this.showSegmentation = !this.showSegmentation;\r\n }\r\n toggleMeasuring() {\r\n if (!this.isMeasuring) {\r\n this.setDefaultMeasurement();\r\n if (this.measureData) this.isMeasuring = true;\r\n } else {\r\n this.isMeasuring = false;\r\n }\r\n }\r\n setDefaultMeasurement() {\r\n let index = getDefaultMeasurementIndex(this.sliceInfo);\r\n this.setMeasurementIndex(index);\r\n }\r\n\r\n setMeasurementIndex(index) {\r\n this.measureData = getMeasurementData(index, this.sliceCurrent, this.sliceInfo);\r\n }\r\n\r\n toggleColorPalette() {\r\n this.octColorSettings.isInverted = false;\r\n if (this.octColorSettings.colorPalette) this.octColorSettings.colorPalette = null;\r\n else this.octColorSettings.colorPalette = this.getSlicePalette();\r\n }\r\n toggleInverted() {\r\n this.octColorSettings.colorPalette = null;\r\n this.octColorSettings.isInverted = !this.octColorSettings.isInverted;\r\n }\r\n getSlicePalette() {\r\n return generatePalette(this.slicePalette);\r\n }\r\n\r\n updateThicknessMapOpacity(opacity) {\r\n this.differenceMapOpacity = opacity;\r\n }\r\n\r\n loadThicknessMap() {\r\n store.commit(\"calculateDifferenceMap\");\r\n }\r\n\r\n calculateDifferenceMap(other, alignFoveas) {\r\n // don't recalculate difference map with same exam, just get it once\r\n if (this.hasDifferenceMap && other.exSrNo === this.otherExSrNo && alignFoveas === this.alignFoveas) return;\r\n\r\n if (!this.thicknessMap || !this.thicknessMap.imgHtmlObject) return;\r\n if (!other || !other.thicknessMap || !other.thicknessMap.imgHtmlObject) return;\r\n // ensure that the difference gradient exists to calculate the difference image\r\n let baselineImg = other.thicknessMap.imgHtmlObject;\r\n let compareImg = this.thicknessMap.imgHtmlObject;\r\n\r\n // can't calculate difference if the images are different sizes\r\n if (baselineImg.width !== compareImg.width || baselineImg.height !== compareImg.height) return;\r\n\r\n this.generateDifferenceColorSettings();\r\n\r\n let canvas = document.createElement(\"canvas\");\r\n let ctx = canvas.getContext(\"2d\");\r\n let baselineData = this.getImgData(canvas, ctx, baselineImg);\r\n let baselineBuffer = new Uint32Array(baselineData.data.buffer);\r\n let compareData = this.getImgData(canvas, ctx, compareImg);\r\n let compareBuffer = new Uint32Array(compareData.data.buffer);\r\n let destData = ctx.createImageData(baselineImg.width, baselineImg.height);\r\n let writeArrayBuffer = new ArrayBuffer(destData.data.length);\r\n let writeBuffer = new Uint32Array(writeArrayBuffer);\r\n\r\n let { offsetX, offsetY } = this.calculateFoveaOffset(other, alignFoveas, compareImg, baselineImg);\r\n calculatePixelDifference(compareImg, offsetX, offsetY, compareBuffer, baselineBuffer, writeBuffer, this.differenceMapColorSettings);\r\n destData.data.set(new Uint8ClampedArray(writeArrayBuffer));\r\n ctx.putImageData(destData, 0, 0);\r\n this.differenceCanvas = canvas;\r\n }\r\n\r\n getImgData(canvas, ctx, img) {\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n ctx.drawImage(img, 0, 0, img.width, img.height);\r\n return ctx.getImageData(0, 0, img.width, img.height);\r\n }\r\n\r\n generateDifferenceColorSettings() {\r\n if (this.differenceMapColorSettings || !this.differenceMapPalette) return;\r\n let differenceColorPalette = generatePalette(this.differenceMapPalette);\r\n let differenceLinearAdjustment = calculateThicknessMapAdjustment(this.differenceMapMinThicknessUm,\r\n this.differenceMapMaxThicknessUm, this.thicknessMap.depthSpacingMm );\r\n this.differenceMapColorSettings = { colorPalette: differenceColorPalette, linearAdjustment: differenceLinearAdjustment };\r\n }\r\n\r\n calculateFoveaOffset(other, alignFoveas, compareImg, baselineImg) {\r\n let offsetX = 0, offsetY = 0;\r\n if (alignFoveas) {\r\n let compareFoveaX = this.foveaOffset.x * compareImg.width;\r\n let compareFoveaY = this.foveaOffset.y * compareImg.height;\r\n let baselineFoveaX = other.foveaOffset.x * baselineImg.width;\r\n let baselineFoveaY = other.foveaOffset.y * baselineImg.height;\r\n offsetX = Math.floor(baselineFoveaX - compareFoveaX);\r\n offsetY = Math.floor(baselineFoveaY - compareFoveaY);\r\n }\r\n return { offsetX, offsetY };\r\n }\r\n\r\n}","import OCTContextBase from \"./octContextBase\";\r\nimport { octThicknessGradient, octColorSettings, generatePalette, zeissThicknessGradient, zeissDifferenceGradient, calculatePixelDifference } from \"../canvas/canvasUtils\";\r\nimport { defaultSize } from \"../canvas/geometry\";\r\nimport { calculateThicknessMapAdjustment, getThicknessMapSize } from \"./octUtils\";\r\nimport { SeriesTypes, COLOR_TYPE } from \"../config/config\";\r\nimport store from \"../store\";\r\n\r\nexport default class CirrusComparisonViewContext extends OCTContextBase {\r\n constructor(group, exam, view) {\r\n super(group, exam, \"cirrusComparisonView\");\r\n\r\n this.view = view;\r\n\r\n this.loadComposite = this.seriesType == SeriesTypes.OpticDisc ? true : false;\r\n this.loadHD = false;\r\n this.loadCScan = this.seriesType == SeriesTypes.OpticDisc ? true : false;\r\n\r\n this.octColorSettings = octColorSettings();\r\n this.thicknessMapColorSettings = null;\r\n\r\n this.slicePalette = octThicknessGradient;\r\n this.thicknessMapPalette = zeissThicknessGradient;\r\n\r\n if (store.getters.userPrefCirrusView == COLOR_TYPE.color)\r\n this.toggleColorPalette();\r\n\r\n this.showOverlay = true;\r\n this.overlayOpacity = 1;\r\n this.showETDRS = true;\r\n this.showSegmentation = false;\r\n\r\n this.relativeMapSize = defaultSize();\r\n\r\n this.thicknessMapMinThicknessUm = 0;\r\n this.thicknessMapMaxThicknessUm = 500;\r\n this.thicknessMapThicknessStepUm = 100;\r\n\r\n this.hasDifferenceMap = false;\r\n this.otherExSrNo = null;\r\n this.alignFoveas = null;\r\n this.differenceCanvas = null;\r\n this.differenceMapColorSettings = null;\r\n this.differenceMapMinThicknessUm = -150;\r\n this.differenceMapMaxThicknessUm = 150;\r\n this.differenceMapThicknessStepUm = 75;\r\n this.differenceMapPalette = zeissDifferenceGradient;\r\n this.differenceAnalysis = null;\r\n }\r\n\r\n startupTask() {\r\n return store.dispatch(\"getOCTInfo\", { exSrNo: this.exSrNo, groupName: this.groupName })\r\n .then(data => this.setOCTInfo(data.data))\r\n .then(this.refreshImages);\r\n }\r\n\r\n refreshImages() {\r\n return store.dispatch(\"loadOCTImagesForMultiview\");\r\n }\r\n\r\n setOCTInfo(data) {\r\n super.setOCTInfo(data);\r\n\r\n if (this.thicknessMap) {\r\n let colorPalette = generatePalette(this.thicknessMapPalette);\r\n let linearAdjustment = calculateThicknessMapAdjustment(this.thicknessMapMinThicknessUm,\r\n this.thicknessMapMaxThicknessUm, this.thicknessMap.depthSpacingMm);\r\n this.thicknessMapColorSettings = { colorPalette, linearAdjustment };\r\n\r\n // calculate the thickness map here in case the image was loaded previously\r\n if (this.thicknessMap.imgHtmlObject) this.loadThicknessMap(this.thicknessMap);\r\n }\r\n\r\n this.relativeMapSize = getThicknessMapSize(this);\r\n\r\n store.commit(\"calculateDifferenceAnalysis\");\r\n }\r\n\r\n toggleSegmentation() {\r\n this.showSegmentation = !this.showSegmentation;\r\n }\r\n toggleETDRS() {\r\n this.showETDRS = !this.showETDRS;\r\n }\r\n toggleOverlay() {\r\n this.showOverlay = !this.showOverlay;\r\n }\r\n updateOverlayOpacity(opacity) {\r\n this.overlayOpacity = opacity;\r\n }\r\n\r\n toggleColorPalette() {\r\n this.octColorSettings.isInverted = false;\r\n if (this.octColorSettings.colorPalette) this.octColorSettings.colorPalette = null;\r\n else this.octColorSettings.colorPalette = this.getSlicePalette();\r\n }\r\n toggleInverted() {\r\n this.octColorSettings.colorPalette = null;\r\n this.octColorSettings.isInverted = !this.octColorSettings.isInverted;\r\n }\r\n getSlicePalette() {\r\n return generatePalette(this.slicePalette);\r\n }\r\n\r\n loadThicknessMap() {\r\n store.commit(\"calculateDifferenceMap\");\r\n }\r\n\r\n calculateDifferenceMap(other, alignFoveas) {\r\n // don't recalculate difference map with same exam, just get it once\r\n if (this.hasDifferenceMap && other.exSrNo === this.otherExSrNo && alignFoveas === this.alignFoveas) return;\r\n\r\n if (!this.thicknessMap || !this.thicknessMap.imgHtmlObject) return;\r\n if (!other.thicknessMap || !other.thicknessMap.imgHtmlObject) return;\r\n // ensure that the difference gradient exists to calculate the difference image\r\n let baselineImg = other.thicknessMap.imgHtmlObject;\r\n let compareImg = this.thicknessMap.imgHtmlObject;\r\n\r\n // can't calculate difference if the images are different sizes\r\n if (baselineImg.width !== compareImg.width || baselineImg.height !== compareImg.height) return;\r\n\r\n this.generateDifferenceColorSettings();\r\n\r\n let canvas = document.createElement(\"canvas\");\r\n let ctx = canvas.getContext(\"2d\");\r\n let baselineData = this.getImgData(canvas, ctx, baselineImg);\r\n let baselineBuffer = new Uint32Array(baselineData.data.buffer);\r\n let compareData = this.getImgData(canvas, ctx, compareImg);\r\n let compareBuffer = new Uint32Array(compareData.data.buffer);\r\n let destData = ctx.createImageData(baselineImg.width, baselineImg.height);\r\n let writeArrayBuffer = new ArrayBuffer(destData.data.length);\r\n let writeBuffer = new Uint32Array(writeArrayBuffer);\r\n\r\n let { offsetX, offsetY } = this.calculateFoveaOffset(other, alignFoveas, compareImg, baselineImg);\r\n calculatePixelDifference(compareImg, offsetX, offsetY, compareBuffer, baselineBuffer, writeBuffer, this.differenceMapColorSettings);\r\n destData.data.set(new Uint8ClampedArray(writeArrayBuffer));\r\n ctx.putImageData(destData, 0, 0);\r\n this.differenceCanvas = canvas;\r\n }\r\n\r\n getImgData(canvas, ctx, img) {\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n ctx.drawImage(img, 0, 0, img.width, img.height);\r\n return ctx.getImageData(0, 0, img.width, img.height);\r\n }\r\n\r\n generateDifferenceColorSettings() {\r\n if (this.differenceMapColorSettings) return;\r\n let colorPalette = generatePalette(this.differenceMapPalette);\r\n let linearAdjustment = calculateThicknessMapAdjustment(this.differenceMapMinThicknessUm,\r\n this.differenceMapMaxThicknessUm, this.thicknessMap.depthSpacingMm);\r\n this.differenceMapColorSettings = { colorPalette, linearAdjustment };\r\n }\r\n\r\n calculateFoveaOffset(other, alignFoveas, compareImg, baselineImg) {\r\n let offsetX = 0, offsetY = 0;\r\n if (alignFoveas && this.foveaOffset && other.foveaOffset) {\r\n let compareFoveaX = this.foveaOffset.x * compareImg.width;\r\n let compareFoveaY = this.foveaOffset.y * compareImg.height;\r\n let baselineFoveaX = other.foveaOffset.x * baselineImg.width;\r\n let baselineFoveaY = other.foveaOffset.y * baselineImg.height;\r\n offsetX = Math.floor(baselineFoveaX - compareFoveaX);\r\n offsetY = Math.floor(baselineFoveaY - compareFoveaY);\r\n }\r\n return { offsetX, offsetY };\r\n }\r\n\r\n calculateDifferenceAnalysis(other) {\r\n if (!this.thicknessAnalysis || !other.thicknessAnalysis) return;\r\n let compareTA = this.thicknessAnalysis;\r\n let otherTA = other.thicknessAnalysis;\r\n\r\n this.differenceAnalysis = {\r\n centerAverageThickness: compareTA.centerAverageThickness - otherTA.centerAverageThickness,\r\n centerRadius: {\r\n x: compareTA.centerRadius.x,\r\n y: compareTA.centerRadius.y\r\n },\r\n middleCircle: {\r\n radius: {\r\n x: compareTA.middleCircle.radius.x,\r\n y: compareTA.middleCircle.radius.y\r\n },\r\n eastValue: compareTA.middleCircle.eastValue - otherTA.middleCircle.eastValue,\r\n southValue: compareTA.middleCircle.southValue - otherTA.middleCircle.southValue,\r\n northValue: compareTA.middleCircle.northValue - otherTA.middleCircle.northValue,\r\n westValue: compareTA.middleCircle.westValue - otherTA.middleCircle.westValue\r\n },\r\n outerCircle: {\r\n radius: {\r\n x: compareTA.outerCircle.radius.x,\r\n y: compareTA.outerCircle.radius.y\r\n },\r\n eastValue: compareTA.outerCircle.eastValue - otherTA.outerCircle.eastValue,\r\n southValue: compareTA.outerCircle.southValue - otherTA.outerCircle.southValue,\r\n northValue: compareTA.outerCircle.northValue - otherTA.outerCircle.northValue,\r\n westValue: compareTA.outerCircle.westValue - otherTA.outerCircle.westValue\r\n }\r\n };\r\n }\r\n}","import OCTContextBase from \"./octContextBase\";\r\nimport { octThicknessGradient, octColorSettings, generatePalette } from \"../canvas/canvasUtils\";\r\nimport store from \"../store\";\r\n\r\nexport default class RasterComparisonViewContext extends OCTContextBase {\r\n constructor(group, exam, view, imgKey) {\r\n super(group, exam, \"rasterComparisonView\", null, imgKey);\r\n\r\n this.view = view;\r\n\r\n this.loadComposite = false;\r\n this.loadHD = false;\r\n \r\n this.octColorSettings = octColorSettings();\r\n this.slicePalette = octThicknessGradient;\r\n }\r\n\r\n startupTask() {\r\n return store.dispatch(\"getOCTInfo\", { exSrNo: this.exSrNo, groupName: this.groupName })\r\n .then(data => this.setOCTInfo(data.data))\r\n .then(this.refreshImages);\r\n }\r\n\r\n refreshImages() {\r\n return store.dispatch(\"loadOCTImagesForMultiview\");\r\n }\r\n\r\n toggleInverted() {\r\n this.octColorSettings.isInverted = !this.octColorSettings.isInverted;\r\n if (this.octColorSettings.isInverted) this.octColorSettings.colorPalette = null;\r\n }\r\n toggleColorPalette() {\r\n this.octColorSettings.isInverted = false;\r\n if (this.octColorSettings.colorPalette) this.octColorSettings.colorPalette = null;\r\n else this.octColorSettings.colorPalette = this.getSlicePalette();\r\n }\r\n getSlicePalette() {\r\n return generatePalette(this.slicePalette);\r\n }\r\n}","import SpectralisComparisonViewContext from \"./spectralisComparisonViewContext\";\r\nimport store from \"../store\";\r\nimport { EyeTypes, OCTBrowserType } from \"../config/config\";\r\nimport CirrusComparisonViewContext from \"./cirrusComparisonViewContext\";\r\nimport RasterComparisonViewContext from \"./rasterComparisonViewContext\";\r\n\r\nexport default class ComparisonContextBase {\r\n constructor(exam, eye, browserTypes, initialBrowserType, componentName, browserName, launchOption, compareImgKey) {\r\n this.componentName = componentName;\r\n this.browserName = browserName;\r\n\r\n this.isComparisonContext = true;\r\n\r\n this.ptSrNo = exam.ptSrNo;\r\n this.eye = eye;\r\n this.preferredBrowserType = initialBrowserType || browserTypes[0];\r\n this.browserType = browserTypes;\r\n\r\n this.exam = exam;\r\n\r\n this.baseline = null;\r\n this.compare = null;\r\n\r\n this.lockEnabled = true;\r\n this.isLocked = true;\r\n this.alignFoveas = true;\r\n this.hasFoveaAlignControl = false;\r\n\r\n this.osExams = store.getters.octExams.filter(e =>\r\n e.osGroups.some(g => g.recognized && browserTypes.includes(g.browserType)));\r\n\r\n this.odExams = store.getters.octExams.filter(e =>\r\n e.odGroups.some(g => g.recognized && browserTypes.includes(g.browserType)));\r\n\r\n this.launchOption = launchOption;\r\n this.compareImgKey = compareImgKey;\r\n }\r\n\r\n get exams() {\r\n return this.eye === EyeTypes.OD ? this.odExams : this.osExams;\r\n }\r\n\r\n get showFoveaAlignControl() {\r\n return this.hasFoveaAlignControl\r\n && this.compare && this.compare.browserType === OCTBrowserType.Cirrus\r\n && this.baseline && this.baseline.browserType === OCTBrowserType.Cirrus;\r\n }\r\n\r\n startupTask() {\r\n let groups = this.eye === EyeTypes.OD ? this.exam.odGroups : this.exam.osGroups;\r\n if(this.compareImgKey){\r\n let image = store.getters.imageByKey(this.compareImgKey);\r\n let group = groups.find(g => g.recognized && g.browserType === this.preferredBrowserType && g.groupName === image.imgGroup);\r\n return this.selectCompare(group, this.exam, this.compareImgKey);\r\n }\r\n else{\r\n let group = groups.find(g => g.recognized && g.browserType === this.preferredBrowserType);\r\n return this.selectCompare(group, this.exam);\r\n }\r\n }\r\n\r\n refreshImages(){\r\n return store.dispatch(\"loadOCTImagesForMultiview\");\r\n }\r\n\r\n clearContext() {\r\n if (this.compare) this.compare.clearContext();\r\n if (this.baseline) this.baseline.clearContext();\r\n }\r\n\r\n selectBaseline(group, exam) {\r\n if (!group || !exam) {\r\n if (this.baseline) this.baseline.clearContext();\r\n this.baseline = null;\r\n return Promise.resolve();\r\n }\r\n if (this.baseline && this.baseline.group === group) return Promise.resolve();\r\n if (this.baseline) this.baseline.pause();\r\n\r\n this.baseline = this.generateViewContext(group, exam, \"baseline\");\r\n this.baseline.loadImages = this.reloadImages;\r\n this.lockIfAble();\r\n return this.baseline.startupTask()\r\n .then(() => {\r\n if (this.isLocked) return store.dispatch(\"synchronizeOCTCompare\");\r\n });\r\n }\r\n \r\n selectCompare(group, exam, compareImgKey) {\r\n this.exam = exam;\r\n this.preferredBrowserType = group.browserType;\r\n this.compare = this.generateViewContext(group, exam, \"compare\", compareImgKey);\r\n this.compare.loadImages = this.reloadImages;\r\n this.lockIfAble();\r\n return Promise.all([this.compare.startupTask(), store.dispatch(\"tryGetBaselineContext\", {launchOption: this.launchOption})]);\r\n }\r\n\r\n // based on the type of browser, select the closest view context\r\n generateViewContext(group, exam, view, compareImgKey) {\r\n switch (group.browserType) {\r\n case OCTBrowserType.Spectralis: return new SpectralisComparisonViewContext(group, exam, view);\r\n case OCTBrowserType.Cirrus: return new CirrusComparisonViewContext(group, exam, view);\r\n case OCTBrowserType.Raster: return new RasterComparisonViewContext(group, exam, view, compareImgKey);\r\n default: return null;\r\n }\r\n }\r\n\r\n setOCTImage(key, image) {\r\n if (this.compare && this.compare.exSrNo === image.exSrNo) this.compare.setOCTImage(key, image);\r\n else if (this.baseline && this.baseline.exSrNo === image.exSrNo) this.baseline.setOCTImage(key, image);\r\n }\r\n\r\n loadThicknessMap(image) {\r\n if (this.compare\r\n && this.compare.loadThicknessMap\r\n && this.compare.exSrNo === image.exSrNo) this.compare.loadThicknessMap();\r\n else if (this.baseline\r\n && this.baseline.loadThicknessMap\r\n && this.baseline.exSrNo === image.exSrNo) this.baseline.loadThicknessMap();\r\n }\r\n\r\n updateFoveaAlignment(val) {\r\n this.alignFoveas = val;\r\n this.calculateDifferenceMap();\r\n }\r\n\r\n calculateDifferenceMap() {\r\n if (this.compare && this.compare.differenceMapPalette && this.compare.calculateDifferenceMap)\r\n this.compare.calculateDifferenceMap(this.baseline, this.alignFoveas);\r\n }\r\n\r\n calculateDifferenceAnalysis() {\r\n if (this.compare && this.compare.calculateDifferenceAnalysis)\r\n this.compare.calculateDifferenceAnalysis(this.baseline);\r\n }\r\n\r\n lockIfAble() {\r\n this.lockEnabled = (this.compare && this.compare.browserType) === (this.baseline && this.baseline.browserType);\r\n this.isLocked = this.lockEnabled ? true : false;\r\n }\r\n\r\n toggleLocked() {\r\n this.isLocked = this.lockEnabled ? !this.isLocked : false;\r\n\r\n if (!this.lockEnabled)\r\n store.commit(\"displayStatus\", { message: \"Cannot lock exams - incompatible types\", level: \"warning\" });\r\n\r\n // too many edge cases to consider when locking/unlocking while playback is happening\r\n // for consistent UI state, just puase\r\n if (this.baseline) this.baseline.pause();\r\n if (this.compare) this.compare.pause();\r\n }\r\n\r\n toggleSegmentationCompare(view) {\r\n this.callChildAction(view, \"toggleSegmentation\");\r\n }\r\n\r\n toggleMeasuringCompare(view) {\r\n this.callChildAction(view, \"toggleMeasuring\");\r\n }\r\n\r\n setMeasurementIndexCompare(x, view) {\r\n this.callChildAction(view, \"setMeasurementIndex\", x);\r\n }\r\n\r\n toggleColorCompare(view) {\r\n this.callChildAction(view, \"toggleColorPalette\");\r\n }\r\n\r\n toggleInvertedCompare(view) {\r\n this.callChildAction(view, \"toggleInverted\");\r\n }\r\n\r\n pauseCompare(view) {\r\n this.callChildAction(view, \"pause\");\r\n }\r\n\r\n setPlayRateCompare(view, rate) {\r\n this.callChildAction(view, \"setPlayRate\", rate);\r\n }\r\n\r\n setPlayIntervalCompare(view, intervalId) {\r\n this.callChildAction(view, \"setPlayInterval\", intervalId);\r\n }\r\n\r\n toggleOverlayCompare(view) {\r\n this.callChildAction(view, \"toggleOverlay\");\r\n }\r\n\r\n updateOverlayOpacityCompare(view, opacity) {\r\n this.callChildAction(view, \"updateOverlayOpacity\", opacity);\r\n }\r\n\r\n toggleETDRSCompare(view) {\r\n this.callChildAction(view, \"toggleETDRS\");\r\n }\r\n\r\n callChildAction(view, actionName, ...args) {\r\n if ((this.isLocked || view === \"compare\") && this.compare && this.compare[actionName])\r\n this.compare[actionName](...args);\r\n if ((this.isLocked || view === \"baseline\") && this.baseline && this.baseline[actionName])\r\n this.baseline[actionName](...args);\r\n }\r\n\r\n switchEye(eye) {\r\n this.eye = eye;\r\n }\r\n}","import ComparisonContextBase from \"./comparisonContextBase\";\r\nimport { EyeTypes, OCTBrowserType } from \"../config/config\";\r\nimport store from \"../store\";\r\n\r\nexport default class SpectralisComparisonBrowserContext extends ComparisonContextBase {\r\n constructor(exam, eye, launchOption, scanTypeFilter, selectedScan) {\r\n super(exam, eye, [OCTBrowserType.Spectralis], OCTBrowserType.Spectralis, \"spectralisComparisonBody\", \"Spectralis Multiview\", launchOption);\r\n \r\n this.showThicknessMap = false;\r\n this.thicknessMapOpacity = 1.0;\r\n this.thicknessDifference = 0.0;\r\n\r\n this.bothMeasuring = false;\r\n\r\n this.isSpectralisComparison = true;\r\n this.scanTypeFilter = scanTypeFilter;\r\n this.reloadImages = false;\r\n this.selectedScan = selectedScan;\r\n }\r\n\r\n get exams() {\r\n let exams, groupSplitExams = [];\r\n exams = this.eye === EyeTypes.OD ? this.odExams : this.osExams;\r\n let groupkey = this.eye === EyeTypes.OD ? \"odGroups\" : \"osGroups\";\r\n exams.forEach(e => {\r\n let test = store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)\r\n if (test.length > 1) {\r\n groupSplitExams.push(...this.generateExamsFromGroup(e, groupkey));\r\n }\r\n else {\r\n if (!e.octDateButtonText.includes(store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].groupSeriesType))\r\n e.octDateButtonText = e.dateDisplay + \" - \" + store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].groupSeriesType + \" (\" + e.exSrNo + \")\";\r\n e.scanType = store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].scanType;\r\n groupSplitExams.push(e);\r\n }\r\n });\r\n if (this.scanTypeFilter != \"All\") {\r\n if (this.scanTypeFilter == \"Radial\")\r\n return groupSplitExams.filter(e => {\r\n return e.scanType == \"star\";\r\n });\r\n return groupSplitExams.filter(e => {\r\n return e.scanType == this.scanTypeFilter.toLowerCase();\r\n });\r\n }\r\n return groupSplitExams;\r\n }\r\n\r\n get examTypes() { \r\n let exams, groupKey;\r\n let examTypes = [\"All\"];\r\n if (this.eye === EyeTypes.OD) {\r\n exams = this.odExams;\r\n groupKey = \"odGroups\";\r\n }\r\n else {\r\n exams = this.osExams;\r\n groupKey = \"osGroups\";\r\n }\r\n\r\n exams.forEach(e => {\r\n e[groupKey].forEach(f => {\r\n if (!examTypes.includes(f.scanType.charAt(0).toUpperCase() + f.scanType.slice(1)) && f.browserType == 1) {\r\n if (f.scanType.toUpperCase() == \"STAR\")\r\n examTypes.push(\"Radial\");\r\n else\r\n examTypes.push(f.scanType.charAt(0).toUpperCase() + f.scanType.slice(1));\r\n }\r\n });\r\n });\r\n\r\n return examTypes;\r\n }\r\n\r\n startupTask() {\r\n let groups = this.eye === EyeTypes.OD ? this.exam.odGroups : this.exam.osGroups, group;\r\n if (this.scanTypeFilter == \"Radial\")\r\n group = groups.find(g => g.recognized && g.browserType === this.preferredBrowserType && g.scanType == \"star\");\r\n else if (this.scanTypeFilter == \"All\")\r\n group = groups.find(g => g.recognized && g.browserType === this.preferredBrowserType);\r\n else\r\n group = groups.find(g => g.recognized && g.browserType === this.preferredBrowserType && g.scanType == this.scanTypeFilter.toLowerCase());\r\n return this.selectCompare(group, this.exam);\r\n }\r\n\r\n generateExamsFromGroup(exam, groupKey) {\r\n let newExam, results = [];\r\n exam[groupKey].forEach(e => {\r\n newExam = Object.assign({}, exam);\r\n newExam.scanType = e.scanType;\r\n newExam.octDateButtonText = exam.dateDisplay + \" - \" + e.groupSeriesType + \" (\" + exam.exSrNo + \")\";\r\n newExam[groupKey] = [e];\r\n results.push(newExam);\r\n });\r\n return results;\r\n }\r\n\r\n lockIfAble() {\r\n if (this.baseline && this.compare) {\r\n let compareScanType = store.getters.groups(this.compare.exam, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].scanType;\r\n let baselineScanType = store.getters.groups(this.baseline.exam, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].scanType\r\n this.lockEnabled = (this.compare && this.compare.browserType) === (this.baseline && this.baseline.browserType) && (compareScanType == baselineScanType);\r\n this.isLocked = this.lockEnabled ? true : false;\r\n }\r\n else\r\n this.isLocked = false;\r\n }\r\n\r\n toggleShowThicknessMap() {\r\n if (this.compare && this.compare.showThicknessMap)\r\n this.compare.showThicknessMap = !this.compare.showThicknessMap;\r\n\r\n if (this.baseline && this.baseline.showThicknessMap) \r\n this.baseline.showThicknessMap = !this.baseline.showThicknessMap;\r\n\r\n this.showThicknessMap = !this.showThicknessMap;\r\n }\r\n\r\n updateThicknessMapOpacity(opacity) {\r\n if (this.compare && this.compare.updateThicknessMapOpacity)\r\n this.compare.updateThicknessMapOpacity(opacity);\r\n if (this.baseline && this.baseline.updateThicknessMapOpacity)\r\n this.baseline.updateThicknessMapOpacity(opacity);\r\n this.thicknessMapOpacity = opacity;\r\n }\r\n\r\n calculateThicknessDifference() {\r\n if (this.compare && this.baseline && this.compare.measureData && this.baseline.measureData) {\r\n let difference = (this.compare.measureData.convertedThickness - this.baseline.measureData.convertedThickness);\r\n let differencePercentage;\r\n if (difference > 0)\r\n differencePercentage = ((difference/this.compare.measureData.convertedThickness) * 100).toFixed(2);\r\n else\r\n differencePercentage = ((difference/this.baseline.measureData.convertedThickness) * 100).toFixed(2);\r\n this.thicknessDifference = difference.toFixed(2) + \" μm (\" + differencePercentage + \"%)\";\r\n }\r\n }\r\n\r\n isBothMeasuring() {\r\n this.bothMeasuring = (this.compare.isMeasuring && this.baseline.isMeasuring);\r\n }\r\n\r\n updateScanTypeFilter(val) {\r\n this.scanTypeFilter = val;\r\n }\r\n\r\n selectCompare(group, exam) {\r\n this.exam = exam;\r\n this.preferredBrowserType = group.browserType;\r\n this.compare = this.generateViewContext(group, exam, \"compare\");\r\n this.compare.loadImages = this.reloadImages;\r\n this.lockIfAble();\r\n this.checkThicknessCompare();\r\n return Promise.all([\r\n this.compare.startupTask(), \r\n store.dispatch(\"tryGetBaselineContext\", {launchOption: this.launchOption})]);\r\n }\r\n\r\n selectBaseline(group, exam) {\r\n if (!group || !exam) {\r\n if (this.baseline) this.baseline.clearContext();\r\n this.baseline = null;\r\n this.checkThicknessCompare();\r\n return Promise.resolve();\r\n }\r\n \r\n this.baseline = this.generateViewContext(group, exam, \"baseline\");\r\n this.baseline.loadImages = this.reloadImages;\r\n this.lockIfAble();\r\n this.checkThicknessCompare();\r\n return this.baseline.startupTask()\r\n .then(() => {\r\n this.checkThicknessCompare();\r\n if (this.isLocked) return store.dispatch(\"synchronizeOCTCompare\");\r\n });\r\n }\r\n\r\n reloadChildrenContext() {\r\n this.reloadImages = true;\r\n if (this.compare && this.compare.exam) {\r\n let exam = this.exams.filter(e => e.exSrNo == this.compare.exam.exSrNo && e.scanType == this.compare.group.scanType);\r\n if (exam.length > 0) {\r\n this.compare.clearContext();\r\n this.selectCompare(this.compare.group, exam[0]);\r\n }\r\n }\r\n if (this.baseline && this.baseline.exam) {\r\n let exam = this.exams.filter(e => e.exSrNo == this.baseline.exam.exSrNo && e.scanType == this.baseline.group.scanType);\r\n if (exam.length > 0) {\r\n this.baseline.clearContext();\r\n this.selectBaseline(this.baseline.group, exam[0]);\r\n }\r\n }\r\n this.checkThicknessCompare();\r\n }\r\n\r\n setOCTImage(key, image) {\r\n if (this.compare && this.compare.exSrNo === image.exSrNo && this.compare.groupName === image.groupName) this.compare.setOCTImage(key, image);\r\n else if (this.baseline && this.baseline.exSrNo === image.exSrNo && this.baseline.groupName === image.groupName) this.baseline.setOCTImage(key, image);\r\n }\r\n \r\n checkThicknessCompare() {\r\n if (this.baseline && this.compare) {\r\n let compareScanType = store.getters.groups(this.compare.exam, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].scanType;\r\n let baselineScanType = store.getters.groups(this.baseline.exam, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].scanType;\r\n let compareSeriesType = store.getters.groups(this.compare.exam, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].groupSeriesType.toLowerCase();\r\n let baselineSeriesType = store.getters.groups(this.baseline.exam, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].groupSeriesType.toLowerCase();\r\n let isSameSeriesType = ((compareSeriesType.includes(\"volume\") && baselineSeriesType.includes(\"volume\")) || \r\n (compareSeriesType.includes(\"cube\") && baselineSeriesType.includes(\"cube\"))) ? true : false;\r\n if (baselineScanType != compareScanType || (compareScanType != \"volume\" && compareScanType != \"cube\") || !isSameSeriesType)\r\n this.showThicknessMap = false;\r\n else\r\n this.showThicknessMap = true;\r\n }\r\n else\r\n this.showThicknessMap = false;\r\n }\r\n}","import ComparisonContextBase from \"./comparisonContextBase\";\r\nimport { EyeTypes, OCTBrowserType } from \"../config/config\";\r\nimport store from \"../store\";\r\n\r\nexport default class CirrusComparisonBrowserContext extends ComparisonContextBase{\r\n constructor(exam, eye, initialBrowserType, launchOption, compareImgKey) {\r\n super(exam, eye, [OCTBrowserType.Cirrus, OCTBrowserType.Raster], initialBrowserType, \"cirrusComparisonBody\", \"Cirrus Multiview\", launchOption, compareImgKey);\r\n this.hasFoveaAlignControl = true;\r\n }\r\n\r\n get exams() {\r\n let exams, groupSplitExams = [];\r\n exams = this.eye === EyeTypes.OD ? this.odExams : this.osExams;\r\n let groupkey = this.eye === EyeTypes.OD ? \"odGroups\" : \"osGroups\";\r\n exams.forEach(e => {\r\n let groups = store.getters.groups(e, this.eye);\r\n if (store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType).length > 1) {\r\n groupSplitExams.push(...this.generateExamsFromGroup(e, groupkey, groups));\r\n }\r\n else {\r\n if (!e.octDateButtonText.includes(store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].groupSeriesType))\r\n e.octDateButtonText = e.dateDisplay + \" - \" + store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].groupSeriesType + \" (\" + e.exSrNo + \")\";\r\n e.scanType = store.getters.groups(e, this.eye, this.currentOCTBrowserType, this.preferredBrowserType)[0].scanType;\r\n groupSplitExams.push(e);\r\n }\r\n });\r\n return groupSplitExams;\r\n }\r\n\r\n generateExamsFromGroup(exam, groupKey, groups) {\r\n let newExam, results = [];\r\n exam[groupKey].forEach(e => {\r\n // Filter ensures that the exam gets the proper groupSeriesType text\r\n if (groups.filter(f => f.groupSeriesType == e.groupSeriesType).length > 0) {\r\n newExam = Object.assign({}, exam);\r\n newExam.scanType = e.scanType;\r\n if (e.browserType != 1)\r\n newExam.octDateButtonText = exam.dateDisplay + \" - \" + e.eye + \" \" + e.groupSeriesType + \" (\" + exam.exSrNo + \")\";\r\n else\r\n newExam.octDateButtonText = exam.dateDisplay + \" - \" + e.groupSeriesType + \" (\" + exam.exSrNo + \")\";\r\n newExam[groupKey] = [e];\r\n results.push(newExam);\r\n }\r\n });\r\n return results;\r\n }\r\n\r\n reloadChildrenContext() {\r\n if (this.compare && this.compare.exam) {\r\n let exam = this.exams.filter(e => e.exSrNo == this.compare.exam.exSrNo && e.octDateButtonText.includes(this.compare.group.groupSeriesType));\r\n if (exam.length > 0) {\r\n this.compare.clearContext();\r\n this.selectCompare(this.compare.group, exam[0],this.compare.imgKey);\r\n }\r\n }\r\n if (this.baseline && this.baseline.exam) {\r\n let exam = this.exams.filter(e => e.exSrNo == this.baseline.exam.exSrNo && e.octDateButtonText.includes(this.baseline.group.groupSeriesType));\r\n if (exam.length > 0) {\r\n this.baseline.clearContext();\r\n this.selectBaseline(this.baseline.group, exam[0]);\r\n }\r\n }\r\n }\r\n}","import { EyeTypes } from \"../config/config\";\r\nimport store from \"../store\";\r\n\r\nexport default class HvfView {\r\n constructor(exam, image) {\r\n this.exam = exam;\r\n this.image = image;\r\n\r\n this.images = [];\r\n this.osImages = [];\r\n this.odImages = [];\r\n this.imagePairs = [];\r\n this.index = 0;\r\n this.osImage = null;\r\n this.odImage = null;\r\n }\r\n\r\n get maxIndex() {\r\n return Math.max(this.osImages.length, this.odImages.length) - 1;\r\n }\r\n\r\n setupView(exams) {\r\n this.images = store.getters.imagesForExams(exams).sort((a, b) => b.exSrNo - a.exSrNo); \r\n this.osImages = this.images.filter(i => i.imgEye === EyeTypes.OS);\r\n this.odImages = this.images.filter(i => i.imgEye === EyeTypes.OD);\r\n\r\n if (!this.image) this.image = this.images[0];\r\n\r\n this.createImagePairs();\r\n this.selectInitialImagePair();\r\n }\r\n\r\n loadImages(){\r\n return store.dispatch(\"loadImages_full_thumb\", this.images);\r\n }\r\n\r\n selectImagesByIndex(index){\r\n if (index < 0) index = 0;\r\n if (index >= this.maxIndex) index = this.maxIndex;\r\n this.index = index;\r\n \r\n this.odImage = this.imagePairs[index].odImage;\r\n this.osImage = this.imagePairs[index].osImage;\r\n }\r\n\r\n createImagePairs() {\r\n this.imagePairs = [];\r\n \r\n if (this.odImages.length >= this.osImages.length) \r\n {\r\n this.odImages.forEach(od => \r\n {\r\n let pair = {odImage: od, osImage: null};\r\n\r\n let osPair = this.osImages.filter(i => i.imgData == od.imgData);\r\n if (osPair.length > 0) \r\n {\r\n pair.osImage = osPair[0];\r\n let osIndex = this.osImages.findIndex(object => {\r\n return object.imgKey == osPair[0].imgKey;\r\n });\r\n this.osImages.splice(osIndex, 1);\r\n }\r\n this.imagePairs.push(pair);\r\n });\r\n }\r\n else \r\n {\r\n this.osImages.forEach(os => \r\n {\r\n let pair = {odImage: null, osImage: os};\r\n\r\n let odPair = this.odImages.filter(i => i.imgData == os.imgData);\r\n if (odPair.length > 0) \r\n {\r\n pair.odImage = odPair[0];\r\n let odIndex = this.odImages.findIndex(object => {\r\n return object.imgKey == odPair[0].imgKey;\r\n });\r\n this.odImages.splice(odIndex, 1);\r\n }\r\n this.imagePairs.push(pair);\r\n });\r\n }\r\n }\r\n\r\n selectInitialImagePair() \r\n {\r\n let imgEye = (this.image.imgEye === EyeTypes.OS ? EyeTypes.OS : EyeTypes.OD);\r\n let selectedPair = this.imagePairs.filter(e => \r\n {\r\n if (imgEye == EyeTypes.OD && e.odImage != null)\r\n return e.odImage.imgKey == this.image.imgKey;\r\n else if (imgEye == EyeTypes.OS && e.osImage != null)\r\n return e.osImage.imgKey == this.image.imgKey;\r\n else\r\n return false;\r\n });\r\n if (selectedPair.length > 0) \r\n {\r\n let pairIndex = this.imagePairs.indexOf(selectedPair[0]);\r\n this.odImage = this.imagePairs[pairIndex].odImage;\r\n this.osImage = this.imagePairs[pairIndex].osImage;\r\n this.index = pairIndex;\r\n }\r\n }\r\n\r\n prev() {\r\n this.selectImagesByIndex(this.index - 1);\r\n }\r\n\r\n next() {\r\n this.selectImagesByIndex(this.index + 1);\r\n }\r\n\r\n clear(){\r\n this.exam = null;\r\n this.images = null;\r\n this.osImages = null;\r\n this.odImages = null;\r\n this.image = null;\r\n this.osImage = null;\r\n this.odImage = null;\r\n this.imagePairs = null;\r\n }\r\n}","import ImageContextBase from \"./imageContextBase\";\r\nimport { EyeTypes } from \"../config/config\";\r\nimport store from \"../store\";\r\nimport HvfView from \"./hvfView\";\r\nimport {getSameDateExams, getExamsWithUniqueDate} from \"../helpers/utils\";\r\n\r\nexport default class HvfContext extends ImageContextBase {\r\n constructor(exam, image){\r\n super(exam, \"hvfBrowserBody\", \"HVF VIEW\");\r\n this.allHvFExams = store.getters.visualFieldExams;\r\n this.exams = [];\r\n this.view = new HvfView(exam, image);\r\n this.eyeFilter = EyeTypes.OU;\r\n }\r\n\r\n startupTask() {\r\n let sameDateExams = getSameDateExams(this.allHvFExams, this.exam.dateDisplay); \r\n let exSrNos = sameDateExams.map(e => e.exSrNo);\r\n this.exams = getExamsWithUniqueDate(this.allHvFExams);\r\n \r\n store.dispatch(\"loadExamImageMetadata\", {exSrNos}).then(() => {\r\n this.view.setupView(sameDateExams)\r\n this.view.loadImages()\r\n });\r\n }\r\n\r\n clearContext() {\r\n this.exams = null;\r\n this.view.clear();\r\n this.view = null;\r\n }\r\n\r\n selectHVFExam(exam) {\r\n this.exam = exam;\r\n this.exSrNo = exam.exSrNo;\r\n this.view.exam = exam;\r\n \r\n let sameDateExams = getSameDateExams(this.allHvFExams, this.exam.dateDisplay); \r\n let exSrNos = sameDateExams.map(e => e.exSrNo);\r\n store.dispatch(\"loadExamImageMetadata\", {exSrNos}).then(() => {\r\n this.view.image = null;\r\n this.view.setupView(sameDateExams)\r\n this.view.loadImages()\r\n });\r\n \r\n }\r\n\r\n selectHVFEye(eye) {\r\n this.eyeFilter = eye;\r\n }\r\n\r\n previousHVFImage() {\r\n this.view.prev();\r\n }\r\n\r\n nextHVFImage() {\r\n this.view.next();\r\n }\r\n}","import store from \"../store\";\r\nimport HvfView from \"./hvfView\";\r\nimport {getSameDateExams, getExamsWithUniqueDate} from \"../helpers/utils\";\r\nexport default class HvfMultiviewContext {\r\n constructor(exam){\r\n this.componentName=\"hvfMultiviewBody\";\r\n this.browserName=\"HVF MULTIVIEW\";\r\n\r\n this.isComparisonContext = true;\r\n this.ptSrNo = exam.ptSrNo;\r\n this.exam = exam;\r\n this.exSrNo = exam.exSrNo;\r\n\r\n this.exams = [];\r\n this.views = [];\r\n this.allHvFExams = store.getters.visualFieldExams.sort((a, b) => b.moment.diff(a.moment));\r\n }\r\n\r\n clearContext(){\r\n store.commit(\"clearImageQueue\", \"imageQueue\");\r\n this.views.forEach(v => v.clear());\r\n this.exam = null;\r\n this.exams = null;\r\n this.views = null;\r\n }\r\n\r\n startupTask() {\r\n this.exams = getExamsWithUniqueDate(this.allHvFExams);\r\n \r\n let exSrNos = this.allHvFExams.map(e => e.exSrNo);\r\n\r\n return store.dispatch(\"loadExamImageMetadata\", {exSrNos}).then(() => {\r\n this.exam = this.exams[0];\r\n this.views = [\r\n new HvfView(this.exam),\r\n new HvfView(this.exams[1] || this.exam),\r\n new HvfView(this.exams[2] || this.exams[1] || this.exam)\r\n ];\r\n\r\n for (const v of this.views){\r\n let sameDateExams = getSameDateExams(this.allHvFExams, v.exam.dateDisplay);\r\n v.setupView(sameDateExams);\r\n }\r\n\r\n this.refreshImages();\r\n });\r\n }\r\n\r\n refreshImages(){\r\n let images = this.views.map(v => v.images)\r\n .reduce((a, b) => a.concat(b))\r\n .filter((a, i, self) => self.indexOf(a) === i);\r\n return store.dispatch(\"loadImages_full_thumb\", images);\r\n }\r\n\r\n selectHVFExam(exam, index){\r\n let view = this.views[index];\r\n if (!view) return;\r\n\r\n view.exam = exam;\r\n let sameDateExams = getSameDateExams(this.allHvFExams, exam.dateDisplay);\r\n view.image = null;\r\n view.setupView(sameDateExams)\r\n view.loadImages();\r\n\r\n if (index === 0) {\r\n this.exam = exam;\r\n this.exSrNo = exam.exSrNo;\r\n }\r\n }\r\n\r\n previousHVFImage(index) {\r\n let view = this.views[index];\r\n if (!view) return;\r\n\r\n view.prev();\r\n }\r\n\r\n nextHVFImage(index){\r\n let view = this.views[index];\r\n if (!view) return;\r\n\r\n view.next();\r\n }\r\n}","import store from \"../store\";\r\nimport ImageContext from \"./imageContext\";\r\nimport { Manufacturers, ScanTypes, SeriesTypes, EyeTypes, OCTBrowserType, DEFAULT_VIEW_TYPE } from \"../config/config\";\r\nimport SpectralisContext from \"./spectralisContext\";\r\nimport CirrusContext from \"./cirrusContext\";\r\nimport RasterContext from \"./rasterContext\";\r\nimport SpectralisComparisonBrowserContext from \"./spectralisComparisonBrowserContext\";\r\nimport CirrusComparisonBrowserContext from \"./cirrusComparisonBrowserContext\";\r\nimport moment from \"moment\";\r\nimport HvfContext from \"./hvfContext\";\r\nimport HvfMultiviewContext from \"./hvfMultiviewContext\";\r\nimport { seriesTimeFormat } from \"../helpers/dateUtils\";\r\nimport { getsortedImages } from \"../helpers/utils.js\"\r\nimport { setOCTButtonText } from \"./octUtils\";\r\n\r\nexport function generateContextForImage(imgKey, isSideBySide) {\r\n let image = store.getters.imageByKey(imgKey);\r\n if (!image) return null;\r\n let exam = store.getters.examBySrNo(image.exSrNo);\r\n if (!exam) return null;\r\n\r\n let device = store.getters.devices.find(d => d.devSrNo == exam.devSrNo);\r\n let description = device.description.toLowerCase();\r\n let context = null;\r\n if (!isSideBySide) {\r\n if ((description.includes(\"oct\") || description.includes(\"scans\")))\r\n context = generateOCTContext(exam, image.imgEye, image.imgGroup, imgKey);\r\n else if (description.includes(\"visual field\") && (image.imgEye == \"OD\" || image.imgEye == \"OS\"))\r\n {\r\n if(store.getters.defaultHVFVIEW == DEFAULT_VIEW_TYPE.multiView)\r\n return new HvfMultiviewContext(exam);\r\n\r\n return new HvfContext(exam, image);\r\n } \r\n if (context) return context;\r\n }\r\n \r\n let images = getsortedImages(store.getters.imagesByExSrNo(image.exSrNo), store.getters.imagesOrderByExSrNo(exam.exSrNo)); \r\n return new ImageContext(image, images, exam);\r\n}\r\n\r\nexport function generateContextFromExam(exSrNo) {\r\n let exam = store.getters.examBySrNo(exSrNo);\r\n return generateOCTContext(exam);\r\n}\r\n\r\nexport function generateContextFromGroupName(groupName) {\r\n let exam = store.getters.exam;\r\n let eye = store.getters.currentEye;\r\n return generateOCTContext(exam, eye, groupName);\r\n}\r\n\r\nexport function generateContextFromGroupAndExSrNo(groupName, exSrNo) {\r\n let obj = {groupName: groupName, exSrNo: exSrNo};\r\n let exam = store.getters.examBySrNo(obj.exSrNo);\r\n let eye = store.getters.currentEye;\r\n return generateOCTContext(exam, eye, groupName);\r\n}\r\n\r\nexport function generateContextFromEye(eye) {\r\n let exam = store.getters.exam;\r\n let patientExams = store.getters.octExams;\r\n\r\n patientExams.forEach(exam => {\r\n setOCTButtonText(exam, eye);\r\n });\r\n\r\n return generateOCTContext(exam, eye);\r\n}\r\n\r\nfunction generateOCTContext(exam, eye, groupName, imgKey) {\r\n if (exam && exam.isOCT && exam.isScans) {\r\n let group = getOCTGroup(exam, eye, groupName);\r\n return generateOCTContextFromGroup(group, exam, imgKey);\r\n }\r\n return null;\r\n}\r\n\r\nexport function generateOCTContextFromGroup(group, exam, imgKey) {\r\n switch (group && group.browserType) {\r\n case OCTBrowserType.Cirrus: return new CirrusContext(group, exam);\r\n case OCTBrowserType.Spectralis: return new SpectralisContext(group, exam, imgKey);\r\n case OCTBrowserType.Raster: return new RasterContext(group, exam, imgKey);\r\n default: return null;\r\n }\r\n}\r\n\r\nexport function generateMultiviewFromContext(context, launchOption) {\r\n return generateMultiviewContext(context.exam, context.eye, [context.browserType], undefined, launchOption, context.group, context.imgKey);\r\n}\r\n\r\nexport function generateMultiviewFromEye(context, eye) {\r\n if (!context || !context.browserType || !context.isComparisonContext) return null;\r\n if (context.eye === eye) return context;\r\n return generateMultiviewContext(context.compare.exam, eye, context.browserType, context.preferredBrowserType, null, context.compare.group);\r\n}\r\n\r\nfunction generateMultiviewContext(exam, eye, browserTypes, preferredBrowserType, launchOption, group, imgKey) {\r\n let groups = store.getters.groups(exam, eye, browserTypes, preferredBrowserType);\r\n if (!groups || !groups.length) return null;\r\n\r\n let browserType = preferredBrowserType || browserTypes[0];\r\n let scanTypeText;\r\n\r\n switch (browserType) {\r\n case OCTBrowserType.Spectralis:\r\n scanTypeText = group.scanType.charAt(0).toUpperCase() + group.scanType.slice(1);\r\n if (scanTypeText == \"Star\")\r\n scanTypeText = \"Radial\";\r\n return new SpectralisComparisonBrowserContext(exam, eye, launchOption, scanTypeText, group.scanType, imgKey);\r\n case OCTBrowserType.Cirrus:\r\n case OCTBrowserType.Raster:\r\n return new CirrusComparisonBrowserContext(exam, eye, browserType, launchOption, imgKey);\r\n default: return null;\r\n }\r\n}\r\n\r\nexport function getManufacturer(description) {\r\n if (description.includes(\"spectralis\")) return Manufacturers.Heidelberg;\r\n if (description.includes(\"cirrus\")) return Manufacturers.Zeiss;\r\n if (description.includes(\"optovue\")) return Manufacturers.Optovue;\r\n return Manufacturers.Unknown;\r\n}\r\n\r\nexport function processScanAndSeriesTypes(manufacturer, groups, examMoment, eye) {\r\n return groups.map(g => {\r\n let groupSeriesType = (g.groupSeriesType || \"\").toLowerCase();\r\n let recognized = recognizedGroupSeriesType(groupSeriesType);\r\n let { scanType, seriesType } = getScanAndSeriesTypes(manufacturer, groupSeriesType);\r\n let browserType = getOCTBrowserType(manufacturer, scanType, seriesType);\r\n return {\r\n groupName: g.groupName,\r\n groupSeriesType: g.groupSeriesType,\r\n seriesTime: g.seriesTime,\r\n seriesMoment: g.seriesTime && moment(g.seriesTime, seriesTimeFormat) || examMoment,\r\n scanType,\r\n seriesType,\r\n recognized,\r\n browserType,\r\n eye\r\n };\r\n });\r\n}\r\n\r\nfunction getOCTGroup(exam, eye, groupName) {\r\n if (!eye) {\r\n if (store.getters.currentEye) eye = store.getters.currentEye;\r\n else if (exam.odGroups.some(g => g.recognized)) eye = EyeTypes.OD;\r\n else if (exam.osGroups.some(g => g.recognized)) eye = EyeTypes.OS;\r\n else return null;\r\n }\r\n\r\n let groups = eye === EyeTypes.OD ? exam.odGroups : exam.osGroups;\r\n let recognized = groups.filter(g => g.recognized)\r\n .filter(g => !groupName || g.groupName === groupName);\r\n\r\n // if we have a browser open, prefer the same type of browser\r\n // so, sort by whether the browser group matches the current browser\r\n // g1.bt == bt && g2.bt == bt => equal\r\n // g1.bt != bt && g2.bt != bt => equal\r\n // g1.bt == bt && g2.bt != bt => g1 preferred\r\n // else => g2 preferred\r\n let browserType = store.getters.currentOCTBrowserType;\r\n if (browserType)\r\n recognized = recognized.sort((g1, g2) =>\r\n ((g1.browserType === browserType) === (g2.browserType === browserType)) ? 0 :\r\n g1.browserType === browserType ? -1 : 1);\r\n\r\n if (recognized.length > 0) {\r\n if (recognized[0].scanType == \"star\" || recognized[0].scanType == \"section\" || recognized[0].scanType == \"radialcircles\")\r\n recognized[0].browserType = OCTBrowserType.Spectralis;\r\n return recognized[0];\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction getScanAndSeriesTypes(manufacturer, groupSeriesType) {\r\n if (!manufacturer || !groupSeriesType) return {};\r\n let scanType = ScanTypes.Unknown;\r\n let seriesType = SeriesTypes.Unknown;\r\n switch (manufacturer) {\r\n case Manufacturers.Zeiss:\r\n scanType = ScanTypes.Raster;\r\n if (groupSeriesType.includes(\"cube\")) scanType = ScanTypes.Volume;\r\n if (groupSeriesType.includes(\"macula\")) seriesType = SeriesTypes.Macula;\r\n else if (groupSeriesType.includes(\"anterior\")\r\n || groupSeriesType.includes(\"angle\")\r\n || groupSeriesType.includes(\"cornea\")) seriesType = SeriesTypes.AnteriorSegment;\r\n else if (groupSeriesType.includes(\"optic\")) seriesType = SeriesTypes.OpticDisc;\r\n break;\r\n case Manufacturers.Heidelberg:\r\n scanType = ScanTypes.Raster;\r\n if (groupSeriesType.includes(\"volume\")\r\n || groupSeriesType.includes(\"cube\")) scanType = ScanTypes.Volume;\r\n else if (groupSeriesType.includes(\"radialcircle\")) scanType = ScanTypes.RadialCircle;\r\n else if (groupSeriesType.includes(\"circle\")) scanType = ScanTypes.Circle;\r\n else if (groupSeriesType.includes(\"star\")) scanType = ScanTypes.Star;\r\n else if (groupSeriesType.includes(\"section\")) scanType = ScanTypes.Section;\r\n break;\r\n case Manufacturers.Optovue:\r\n scanType = ScanTypes.Raster;\r\n if (groupSeriesType.includes(\"macula\")) {\r\n scanType = ScanTypes.Volume;\r\n seriesType = SeriesTypes.Macula;\r\n }\r\n }\r\n return { scanType, seriesType };\r\n}\r\n\r\nconst recognizedTerms = [\"volume\", \"cube\", \"macula\", \"anterior\", \"angle\", \"cornea\",\r\n \"optic\", \"circle\", \"star\", \"raster\", \"section\", \"radialcircles\"];\r\n\r\nfunction recognizedGroupSeriesType(groupSeriesType) {\r\n return recognizedTerms.some(t => groupSeriesType.includes(t));\r\n}\r\n\r\nfunction getOCTBrowserType(manufacturer, scanType, seriesType) {\r\n if (scanType === ScanTypes.Volume\r\n && seriesType === SeriesTypes.Macula)\r\n return OCTBrowserType.Cirrus;\r\n \r\n if (scanType === ScanTypes.Volume\r\n && seriesType === SeriesTypes.OpticDisc)\r\n return OCTBrowserType.Cirrus;\r\n\r\n if (scanType === ScanTypes.Volume\r\n && manufacturer === Manufacturers.Heidelberg)\r\n return OCTBrowserType.Spectralis;\r\n\r\n if (scanType === ScanTypes.Circle\r\n && manufacturer === Manufacturers.Heidelberg)\r\n return OCTBrowserType.Spectralis;\r\n\r\n if (scanType === ScanTypes.Section\r\n && manufacturer === Manufacturers.Heidelberg)\r\n return OCTBrowserType.Spectralis;\r\n\r\n if (scanType === ScanTypes.Star\r\n && manufacturer === Manufacturers.Heidelberg)\r\n return OCTBrowserType.Spectralis;\r\n\r\n if (scanType === ScanTypes.RadialCircle\r\n && manufacturer === Manufacturers.Heidelberg)\r\n return OCTBrowserType.Spectralis;\r\n\r\n if (scanType === ScanTypes.Raster) return OCTBrowserType.Raster;\r\n\r\n return OCTBrowserType.Unknown;\r\n \r\n}","import store from \"../store\";\r\nexport default class StereoContext {\r\n constructor(images, exImages) {\r\n\r\n // Select images such that every image has an adjacent pair\r\n // If the last image is selected, pair it with the first image\r\n let selectedImages = images.slice().sort((a, b) => a.exIndex - b.exIndex);\r\n let maxIndex = Math.max(...exImages.map(i => i.exIndex));\r\n let pairs = images.map((image, index) => {\r\n let nextIndex = image.exIndex === maxIndex ? 1 : image.exIndex + 1;\r\n let nextImage = exImages.find(i => i.exIndex === nextIndex);\r\n if (!selectedImages.includes(nextImage)) selectedImages.push(nextImage);\r\n return {\r\n image1: image,\r\n image2: nextImage,\r\n index: index\r\n };\r\n });\r\n\r\n this.imagePairs = pairs;\r\n this.selectedPair = pairs[0];\r\n this.images = selectedImages;\r\n }\r\n\r\n refreshImages(){\r\n return store.dispatch(\"loadImages_full_thumb\", this.images);\r\n }\r\n}\r\n\r\n","import store from \"../store\";\r\nexport default class SideBySideContext {\r\n constructor() {\r\n this.displayAnnotation = false;\r\n this.leftContext = null;\r\n this.rightContext = null;\r\n this.sync = false;\r\n }\r\n\r\n refreshImages() {\r\n return store.dispatch(\"loadImagesForSideBySide\");\r\n }\r\n}\r\n\r\n","import { iPadBrowser } from \"../helpers/browserDetect\";\r\nimport { ie } from \"../helpers/browserDetect\";\r\nimport { logDetailed } from \"../helpers/utils\";\r\n\r\nexport function print(content) {\r\n logDetailed(\"print\", \"print\", \"trying to print\", content);\r\n return new Promise((resolve) => doPrint(content, resolve));\r\n}\r\n\r\nfunction doPrint(content, resolve) {\r\n let newWindow = window.open(\"printPreview\");\r\n newWindow.document.write(content);\r\n\r\n if (iPadBrowser) {\r\n window.onfocus = function () {\r\n setTimeout(() => {\r\n newWindow.close()\r\n resolve();\r\n }, 1000);\r\n };\r\n newWindow.print();\r\n window.focus();\r\n } else {\r\n if(ie){\r\n newWindow.document.close();\r\n }\r\n newWindow.print();\r\n newWindow.close();\r\n resolve();\r\n }\r\n}\r\n\r\nexport function formatPrintContent(html, displayHeader, pageLayout, imagesPerSheet) {\r\n var content = `\r\n \r\n \r\n \r\n Print Preview\r\n \r\n \r\n \r\n ${html}\r\n \r\n `;\r\n \r\n return content;\r\n}\r\n\r\nexport function requestPrintInApp(data) {\r\n logDetailed(\"print\", \"requestPrintInApp\", \"trying to request print in app\", data);\r\n return new Promise((resolve) => {\r\n if (window.requestPrintInApp) window.requestPrintInApp(data, resolve);\r\n else alertAboutPrintInApp(data, resolve);\r\n });\r\n}\r\n\r\nfunction alertAboutPrintInApp(data, resolve) {\r\n alert(JSON.stringify(data));\r\n resolve();\r\n}","import store from \"../store\";\r\nimport { formatPrintContent, print } from \"./print\";\r\nexport default class PrintPreviewContext {\r\n constructor(images) {\r\n this.images = images;\r\n\r\n this.displayHeader = false;\r\n this.pageLayout = \"portrait\";\r\n this.currentPage = 1;\r\n this.sheetNum = 0;\r\n this.imageNum = 0;\r\n this.isPrinting = false;\r\n\r\n this.imagesPerSheet = 1;\r\n if (this.images.length > 9)\r\n this.imagesPerSheet = 16;\r\n else if (this.images.length > 4)\r\n this.imagesPerSheet = 9;\r\n else if (this.images.length > 1)\r\n this.imagesPerSheet = 4;\r\n }\r\n\r\n refreshImages() {\r\n return store.dispatch(\"loadImages_full\", this.images);\r\n }\r\n\r\n print() {\r\n let html = document.getElementById(\"printBody\").innerHTML;\r\n let content = formatPrintContent(html, this.displayHeader, this.pageLayout, this.imagesPerSheet);\r\n return print(content);\r\n }\r\n\r\n getExSrNo() {\r\n if (!store.getters.exSrNo)\r\n return this.images[0].exSrNo;\r\n return store.getters.exSrNo;\r\n }\r\n\r\n getPtSrNo() {\r\n return store.getters.ptSrNo;\r\n }\r\n}","// general functions used in different actions files\r\n\r\nexport function imageAlreadyLoaded(image, prefix) {\r\n return image[prefix + \"HtmlObject\"] || image[prefix + \"IsLoading\"] || image[prefix + \"NotFound\"];\r\n}","import axios from \"axios\";\r\nimport { logDetailed } from \"../../helpers/utils\";\r\nimport {\r\n setupRefreshTokenLoop, setupAutologoutEvents, disableAutologoutEvents,\r\n disableRefreshTokenLoop\r\n} from \"../../helpers/idle\";\r\nimport { disableRefreshPatientLoop } from \"../../helpers/patientRefresh\";\r\n\r\nexport const login = ({ commit, dispatch }, payload) =>\r\n processLogin(commit, dispatch, \"/api/account/signin\", payload);\r\n\r\nexport const sso = ({ commit, dispatch, getters }, payload) => {\r\n if (getters.allowUISSO) {\r\n payload.fullURL = window.location.href;\r\n mergePidKey(payload, \"pid\");\r\n mergePidKey(payload, \"ptid\");\r\n return processLogin(commit, dispatch, \"/api/account/sso\", payload);\r\n }\r\n else return Promise.reject();\r\n};\r\n\r\nfunction mergePidKey(payload, pattern) {\r\n var objKey = Object.keys(payload).find(key => key.toLowerCase() === pattern);\r\n if (objKey) {\r\n let temp = payload[objKey];\r\n delete payload[objKey];\r\n payload.ptID = temp;\r\n }\r\n}\r\n\r\nfunction processLogin(commit, dispatch, url, payload) {\r\n logDetailed(\"actions\", \"processLogin\");\r\n return axios.post(url, payload)\r\n .then(response => {\r\n logDetailed(\"actions\", \"processLogin\", \"post succeeded\");\r\n disableRefreshTokenLoop();\r\n disableAutologoutEvents();\r\n commit(\"updateAuth\", response.data);\r\n return Promise.resolve(response.data);\r\n })\r\n .then(loginData => {\r\n dispatch(\"getUserPrefs\");\r\n dispatch(\"ensureStaticListsLoaded\", true)\r\n .then(() => {\r\n setupRefreshTokenLoop();\r\n setupAutologoutEvents();\r\n });\r\n return Promise.resolve(loginData);\r\n })\r\n .catch(error => {\r\n logDetailed(\"actions\", \"processLogin\", \"post failed\");\r\n return logoutAndReject(dispatch, error);\r\n })\r\n}\r\n\r\nexport const emrStatLogin = ({commit, dispatch}, payload) => {\r\n mergePidKey(payload, \"pid\");\r\n mergePidKey(payload, \"ptid\");\r\n return processEMRstatLogin(commit, dispatch, \"/api/account/sso\", payload);\r\n}\r\n\r\nfunction processEMRstatLogin(commit, dispatch, url, payload){\r\n logDetailed(\"actions\", \"processEMRstatLogin\");\r\n return axios.post(url, payload)\r\n .then(response =>{\r\n logDetailed(\"actions\", \"processEMRstatLogin\", \"post succeeded\");\r\n commit(\"updateAuth\", response.data);\r\n disableAutologoutEvents();\r\n return Promise.resolve(response.data)\r\n })\r\n .catch(error => {\r\n logDetailed(\"actions\", \"processEMRstatLogin\", \"post failed\");\r\n return logoutAndReject(dispatch, error);\r\n })\r\n}\r\n\r\nexport const validateJWT = ({ commit, dispatch }, query) => {\r\n if (!query || !query.data)\r\n return Promise.reject(\"Missing json payload\");\r\n\r\n let data = JSON.parse(query.data);\r\n if (!data.access_token || !data.refresh_token || !data.user)\r\n return Promise.reject(\"Missing required jwt data in json payload\");\r\n\r\n logDetailed(\"actions\", \"validateJWT\", \"handling jwt login\", query);\r\n\r\n commit(\"updateAuth\", data);\r\n return dispatch(\"isTokenExpired\")\r\n .then(() => dispatch(\"renewToken\"))\r\n .then(() => {\r\n dispatch(\"ensureStaticListsLoaded\", true)\r\n .then(() => {\r\n setupRefreshTokenLoop();\r\n setupAutologoutEvents();\r\n });\r\n return Promise.resolve();\r\n })\r\n .catch(error => {\r\n logoutAndReject(dispatch, error);\r\n });\r\n};\r\n\r\nfunction logoutAndReject(dispatch, error) {\r\n dispatch(\"logout\");\r\n return Promise.reject(error && error.response);\r\n}\r\n\r\nexport const renewToken = ({ commit }) => {\r\n logDetailed(\"actions\", \"renewToken\");\r\n const auth = sessionStorage.getItem(\"auth\");\r\n const json = JSON.parse(auth);\r\n const refreshToken = (json && json.auth && json.auth.refresh_token) ? json.auth.refresh_token : \"\";\r\n return axios\r\n .post(\"/api/token/renewtokens\", {\r\n RefreshToken: refreshToken\r\n })\r\n .then(response => {\r\n logDetailed(\"actions\", \"renewToken\", \"post succeeded\");\r\n commit(\"updateAuth\", response.data);\r\n })\r\n .catch(error => {\r\n logDetailed(\"actions\", \"renewToken\", \"post failed\");\r\n return Promise.reject(error && error.response);\r\n });\r\n}\r\n\r\n\r\nexport const isTokenExpired = ({ dispatch }) => {\r\n axios.post(\"/api/token/tokenAlive\")\r\n .catch(error => logoutAndReject(dispatch, error));\r\n}\r\n\r\nexport const logout = ({ commit, dispatch }) => {\r\n logDetailed(\"actions\", \"logout\");\r\n axios.post(\"/api/account/logout\");\r\n disableAutologoutEvents();\r\n disableRefreshTokenLoop();\r\n disableRefreshPatientLoop();\r\n commit(\"setUserPrefs\", []);\r\n commit(\"resetCalledFullscreenToggle\");\r\n dispatch(\"clearAllDialogs\")\r\n .finally(() => commit(\"logout\"));\r\n};\r\n\r\nexport const clearAllDialogs = ({ commit }) => {\r\n logDetailed(\"actions\", \"clearAllDialogs\");\r\n commit(\"setTextAnnotationToEdit\", null);\r\n commit(\"clearBrowserContext\");\r\n commit(\"clearOverlay\");\r\n commit(\"clearStereoContext\");\r\n commit(\"clearPrintPreviewContext\");\r\n commit(\"cancelDeleteImages\");\r\n commit(\"clearProofsheetContext\");\r\n commit(\"clearPatientExamMultiviewContext\");\r\n commit(\"clearSelectedPatient\");\r\n commit(\"setExamToDelete\", null);\r\n commit(\"clearExamDeleteList\");\r\n commit(\"clearEditExam\");\r\n commit(\"setLoadingMessage\", null);\r\n commit(\"closeHelpDialog\");\r\n return Promise.resolve();\r\n}\r\n\r\nexport const getMFAEnabled = ({ commit }) =>\r\n axios.post(\"/api/account/getmfa\")\r\n .then(response => commit(\"set2faEnabled\", response.data));\r\n\r\nexport const setMFAEnabled = (_, payload) =>\r\n axios.post(\"/api/account/setmfa\", payload);\r\n\r\nexport const setMFASecret = (_, payload) =>\r\n axios.post(\"/api/account/setmfasecret\", payload);\r\n\r\nexport const getMFASecret = () =>\r\n axios.post(\"/api/account/getmfasecret\");","// actions.js contains Vuex actions\r\n// https://vuex.vuejs.org/guide/actions.html\r\n// Actions do not mutate states directly, Actions commit mutations\r\n// Actions can be asynchronous\r\n\r\nimport axios from \"axios\";\r\nimport JSZip from \"jszip\";\r\nimport moment from \"moment\";\r\nimport router from \"../../router\";\r\nimport { debouncePerKey, logDetailed } from \"../../helpers/utils\";\r\nimport { formatDateDisplay, formatDateISO } from \"../../helpers/dateUtils\";\r\nimport { setupRefreshTokenLoop, setupAutologoutEvents } from \"../../helpers/idle\";\r\nimport { setupRefreshPatientLoop, disableRefreshPatientLoop } from \"../../helpers/patientRefresh\";\r\nimport { saveBlob } from \"../../helpers/blobsaver\";\r\nimport { onSiteInitializedInApp } from \"../../helpers/appInterface\";\r\nimport { GRAYSCALE_MODES, SliceLayerTypes, EyeTypes, SEARCH_BY, PATIENT_TIMESPAN, \r\n THUMBNAIL_DROPDOWN, VALID_IMG_TYPES, DEVICE_HISTORY_EDITABLE_FIELDS\r\n } from \"../../config/config\";\r\nimport CanvasRenderer from \"../../canvas/canvasRenderer\";\r\nimport {\r\n getAnnotationType, drawShadedImage, applyPixelShadingRules, hasCustomPixelColorSettings\r\n} from \"../../canvas/canvasUtils\";\r\nimport {\r\n generateContextForImage, getManufacturer, generateContextFromExam,\r\n generateContextFromGroupName, generateContextFromGroupAndExSrNo, \r\n generateContextFromEye, generateMultiviewFromContext,\r\n generateOCTContextFromGroup, generateMultiviewFromEye\r\n} from \"../../imageBrowserContext/contextFactory\";\r\nimport HvfMultiviewContext from \"../../imageBrowserContext/hvfMultiviewContext\";\r\nimport HvfContext from \"../../imageBrowserContext/hvfContext\";\r\nimport ImageContext from \"../../imageBrowserContext/imageContext\";\r\nimport StereoContext from \"../../imageBrowserContext/StereoContext\";\r\nimport SideBySideContext from \"../../imageBrowserContext/SideBySideContext\";\r\nimport PrintPreviewContext from \"../../imageBrowserContext/PrintPreviewContext\";\r\nimport { requestPrintInApp } from \"../../imageBrowserContext/print\";\r\nimport { imageAlreadyLoaded } from \"./helpers\";\r\nimport { logoutAndReject } from \"./authActions\";\r\n\r\n// #region get static data - site info, physicians, etc.\r\nexport const initialize = ({ commit, state, dispatch, getters }) => {\r\n logDetailed(\"actions\", \"initialize\", \"initializing ui site\");\r\n let initial = sessionStorage.getItem(\"store\");\r\n let json = JSON.parse(initial);\r\n if (initial && json) commit(\"initialize\", json);\r\n\r\n let storeAuth = sessionStorage.getItem(\"auth\");\r\n let jsonAuth = JSON.parse(storeAuth);\r\n if (storeAuth && jsonAuth) commit(\"initialize\", jsonAuth);\r\n \r\n if (state.auth) commit(\"updateAuth\", state.auth);\r\n\r\n let startupTask = dispatch(\"getSiteInfo\");\r\n \r\n if (getters.isAuthenticated)\r\n startupTask = startupTask\r\n .then(() => dispatch(\"isTokenExpired\"))\r\n .then(() => {\r\n dispatch(\"getUserPrefs\");\r\n setupAutologoutEvents();\r\n setupRefreshTokenLoop();\r\n }) \r\n .catch(error => {\r\n logDetailed(\"actions\", \"initialize\", \"post failed\");\r\n return logoutAndReject(dispatch, error);\r\n });\r\n\r\n startupTask.finally(onSiteInitializedInApp);\r\n\r\n return startupTask;\r\n};\r\nexport const getSiteInfo = ({ commit }) => {\r\n logDetailed(\"actions\", \"getSiteInfo\");\r\n return axios.get(\"/api/siteinfo\")\r\n .then(response => {\r\n logDetailed(\"actions\", \"getSiteInfo\", \"post succeeded\", response.data);\r\n if (response.data.defaultPatientListing != null) {\r\n response.data.defaultPatientListing = response.data.defaultPatientListing.toLowerCase();\r\n // for discrepancy value in between db vs patient list dropdown\r\n if(response.data.defaultPatientListing == \"today\") response.data.defaultPatientListing = \"day\";\r\n commit(\"setPatientDateSetting\", response.data.defaultPatientListing);\r\n }\r\n if (response.data.autoRefreshPatientList != null)\r\n commit(\"setAutoPatientRefresh\", response.data.autoRefreshPatientList ? 1 : 0);\r\n commit(\"siteInfo\", response.data);\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => {\r\n logDetailed(\"actions\", \"getSiteInfo\", \"post failed\");\r\n return Promise.reject(error.response);\r\n });\r\n}\r\nexport const getActDirEnabled = ({ commit }) =>\r\n axios.get(\"/api/siteinfo/actDirEnabled\")\r\n .then(response => {\r\n var isEnabled = response.data == \"false\" ? false : true;\r\n commit(\"setActDirEnabled\", isEnabled);\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\nexport const getPhysicians = ({ commit, getters }, forceLoad) => {\r\n let doLoad = forceLoad || !getters.physicians || !getters.physicians.length;\r\n if (doLoad)\r\n return axios.get(\"/api/physician/list\")\r\n .then(response => {\r\n const physicians = response.data.data.map(value => {\r\n return {\r\n phyStatus: value.phyStatus,\r\n phyLevel: value.phyLevel,\r\n phyUsrSrNo: value.phyUsrSrNo + \"\",\r\n phySrNo: value.phySrNo + \"\",\r\n lastName: value.phyLName,\r\n firstName: value.phyFName,\r\n name: value.phyName,\r\n isSelected: value.isSelected,\r\n modalityList: value.phyModalityList\r\n };\r\n });\r\n commit(\"setPhysicians\", physicians);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n return Promise.resolve();\r\n};\r\nexport const getDevices = ({ commit, getters }, forceLoad) => {\r\n let doLoad = forceLoad || !getters.devices || !getters.devices.length;\r\n if (doLoad)\r\n return axios.get(\"/api/device/userDeviceList\")\r\n .then(response => {\r\n response.data.data.forEach(device => {\r\n if (device.configuration && window.DOMParser) {\r\n let doc = new DOMParser().parseFromString(device.configuration, \"text/xml\");\r\n let key = doc.children ? \"children\" : \"childNodes\";\r\n let nodes = doc[key];\r\n if (nodes && nodes.length && nodes[0][key] && nodes[0][key].length) {\r\n let data = Array.from(nodes[0][key], n => {\r\n return {\r\n type: n.attributes.TYPE.value,\r\n value: n.attributes.VALUE.value,\r\n desc: n.attributes.DESC.value\r\n };\r\n });\r\n device.configs = data;\r\n }\r\n }\r\n if (device.defaultZoomFactor)\r\n device.defaultZoomFactor = parseFloat(device.defaultZoomFactor).toFixed(2);\r\n let description = device.description.toLowerCase();\r\n device.manufacturer = getManufacturer(description);\r\n device.isOptos = description.includes(\"optos\");\r\n device.isOCT = description.includes(\"oct\");\r\n device.isScans = description.includes(\"scans\");\r\n device.devSrNo = device.srNo + \"\";\r\n device.isActive = device.isActive == true;\r\n });\r\n commit(\"setDevices\", response.data.data);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n return Promise.resolve();\r\n};\r\nexport const getdevLocations = ({ commit, getters }, forceLoad) => {\r\n let doLoad = forceLoad || !getters.devLocations || !getters.devLocations.length;\r\n if (doLoad)\r\n return axios.get(\"/api/device/devLocations\")\r\n .then(response => {\r\n const devLocationsList = response.data.map(x => {\r\n return {\r\n value: x,\r\n text: x\r\n };\r\n });\r\n commit(\"setdevLocations\", devLocationsList);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n return Promise.resolve();\r\n};\r\nexport const getProcedures = ({ commit, getters }, forceLoad) => {\r\n let doLoad = forceLoad || !getters.procedures || !getters.procedures.length;\r\n if (doLoad)\r\n return axios.get(\"/api/procedure/list\")\r\n .then(response => {\r\n const procedures = response.data.map(value => {\r\n return {\r\n dpSrNo: value.dpSrNo + \"\",\r\n dpName: value.dpName,\r\n };\r\n });\r\n commit(\"setProcedures\", procedures);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n return Promise.resolve();\r\n};\r\n\r\nexport const getPracticeGroupsList = ({ commit }, ) => {\r\n return axios.get(\"/api/siteinfo/getPracticeGroupsList\")\r\n .then(response => {\r\n commit(\"setPracticeGroupsList\", response.data.data);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n};\r\n\r\nexport const ensureStaticListsLoaded = ({ dispatch }, forceLoad) => Promise.all([\r\n dispatch(\"getPhysicians\", forceLoad),\r\n dispatch(\"getDevices\", forceLoad),\r\n dispatch(\"getdevLocations\", forceLoad),\r\n dispatch(\"getProcedures\", forceLoad),\r\n dispatch(\"getActDirEnabled\"),\r\n dispatch(\"getPracticeGroupsList\")\r\n]);\r\n// #endregion\r\n\r\n// #region administrator actions\r\nexport const setAxisSettings = ({ commit, dispatch }, payload) => {\r\n commit(\"setLoadingMessage\", \"Updating...\");\r\n axios.post(\"/api/siteinfo/updateAxisSettings\", {\r\n DefaultPatientListing: payload.patientDefaultListing,\r\n UseDefaultHvf: payload.useDefaultHVF,\r\n OverrideMultiviewHVFCheck: payload.overrideMultiviewHVFCheck,\r\n UserInactivityTimeLimit: payload.userInactivityTimeLimit,\r\n IsActDirEnabled: payload.actDirEnabled,\r\n LDAPPathList: payload.actDirPath,\r\n GroupAdmin: payload.actDirGroupAxisAdmin,\r\n GroupAttdMD: payload.actDirGroupAxisAttndMD,\r\n GroupRefMD: payload.actDirGroupAxisRefMD,\r\n GroupUser: payload.actDirGroupAxisUser,\r\n GroupReadOnly: payload.actDirGroupAxisReadOnly,\r\n GroupViewOnly: payload.actDirGroupAxisViewOnly,\r\n GroupPhotographer: payload.actDirGroupAxisPhotographer,\r\n SiteDefaultHVFview: payload.siteDefaultHVFview,\r\n CirrusScanDisplayRatio : payload.cirrusScanDisplayRatio,\r\n UserLockoutEnabled: payload.userLockoutEnabled,\r\n UserFailedLoginAttempts: payload.userFailedLoginAttempts,\r\n UserLockoutDuration: payload.userLockoutDuration,\r\n UserFailedLoginAttemptsReset: payload.userFailedLoginAttemptsReset\r\n })\r\n .then(response => {\r\n if (!response.data) return Promise.reject();\r\n dispatch(\"getSiteInfo\");\r\n dispatch(\"getActDirEnabled\");\r\n commit(\"displayStatus\", { message: \"Success!\", level: \"success\" });\r\n return Promise.resolve(response);\r\n }).catch(() => {\r\n commit(\"displayStatus\", { message: \"An error occurred while updating configurations. Please try again later.\", level: \"error\" });\r\n return Promise.reject()\r\n }).finally(() => commit(\"setLoadingMessage\", null));\r\n};\r\nexport const getActDir = () =>\r\n axios.get(\"/api/siteinfo/getActDir\")\r\n .then(response => {\r\n return Promise.resolve(response);\r\n });\r\n\r\nexport const getUserList = ({ commit }) =>\r\n axios.post(\"/api/result/getuserlist\")\r\n .then(response => {\r\n response.data.data.forEach(user => {\r\n // todo - these mappings don't belong here\r\n // data shouldn't have to match display\r\n if (user.usrStat.toUpperCase() == \"ACTIVE\") user.status = \"Active\";\r\n else user.status = \"Inactive\";\r\n switch (user.desig) {\r\n case 0: user.desig = \"Admin\"; break;\r\n case 1: user.desig = \"AttdMD\"; break;\r\n case 2: user.desig = \"RefMD\"; break;\r\n case 3: user.desig = \"Photographer\"; break;\r\n case 4: user.desig = \"User\"; break;\r\n case 5: user.desig = \"ReadOnly\"; break;\r\n case 6: user.desig = \"ADUser\"; break;\r\n case 7: user.desig = \"RCSiteUser\"; break;\r\n case 8: user.desig = \"Invalid\"; break;\r\n case 9: user.desig = \"Device\"; break;\r\n case 10: user.desig = \"Reviewer\"; break;\r\n case 11: user.desig = \"ViewOnly\"; break;\r\n }\r\n });\r\n commit(\"userList\", response.data.data);\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n\r\nexport const statsList = (context, payload) =>\r\n axios.post(\"/api/result/statslistdays\", payload)\r\n .then(response => {\r\n response.data.forEach(user => {\r\n // todo - these mappings don't belong here\r\n // data shouldn't have to match display\r\n user.month = mapMonth(user.month);\r\n });\r\n return Promise.resolve(response);\r\n });\r\n\r\n\r\nexport const statsFilesList = (context, payload) =>\r\n axios.post(\"/api/result/statsfileslistdays\", payload)\r\n .then(response => {\r\n response.data.forEach(user => {\r\n // todo - these mappings don't belong here\r\n // data shouldn't have to match display\r\n user.month = mapMonth(user.month);\r\n });\r\n return Promise.resolve(response);\r\n });\r\n\r\nfunction mapMonth(number) {\r\n switch (number) {\r\n case 1: return \"January\";\r\n case 2: return \"February\";\r\n case 3: return \"March\";\r\n case 4: return \"April\";\r\n case 5: return \"May\";\r\n case 6: return \"June\";\r\n case 7: return \"July\";\r\n case 8: return \"August\";\r\n case 9: return \"September\";\r\n case 10: return \"October\";\r\n case 11: return \"November\";\r\n default: return \"December\";\r\n }\r\n}\r\n\r\nexport const processUser = (context, payload) =>\r\n axios.post(\"/api/account/userprocess\", {\r\n ID: payload.id,\r\n Pass: payload.password,\r\n FName: payload.fName,\r\n LName: payload.lName,\r\n Desig: payload.desig,\r\n IsValid: true,\r\n IsActive: payload.isActive,\r\n Stat: payload.isActive ? 0 : 1,\r\n ChangePWD: payload.changePWD,\r\n ChangePWDMust: payload.changePWDMust,\r\n UserPrefMenu: payload.userPrefMenu,\r\n ContactNumber: payload.contactNumber,\r\n Email: payload.email,\r\n SrNo: payload.srNo,\r\n act: payload.act,\r\n Dept: payload.dept,\r\n user: null,\r\n PracticeGroupIds: payload.practiceGroupId\r\n });\r\n\r\nexport const processPhysician = (context, payload) => {\r\n if (payload.associatedUser[0].name == \" \") {\r\n return axios.post(\"/api/physician/physicianprocess\", {\r\n SrNo: payload.srNo,\r\n UsrSrNo: payload.associatedUser[0].srNo,\r\n FName: payload.fName,\r\n LName: payload.lName,\r\n Name: payload.name,\r\n PhyLevel: payload.phyLevel,\r\n phyModalityList: payload.modalityList,\r\n PhyStatus: payload.phyStatus,\r\n IsSelected: payload.isSelected,\r\n act: payload.act,\r\n associatedUser: null\r\n });\r\n }\r\n else {\r\n return axios.post(\"/api/physician/physicianprocess\", {\r\n SrNo: payload.srNo,\r\n UsrSrNo: payload.associatedUser[0].srNo,\r\n FName: payload.fName,\r\n LName: payload.lName,\r\n Name: payload.name,\r\n PhyLevel: payload.phyLevel,\r\n phyModalityList: payload.modalityList,\r\n PhyStatus: payload.phyStatus,\r\n IsSelected: payload.isSelected,\r\n act: payload.act,\r\n associatedUser: {\r\n ID: payload.associatedUser[0].id,\r\n SrNo: payload.associatedUser[0].srNo,\r\n usrSrNo: payload.associatedUser[0].usrSrNo,\r\n FName: payload.associatedUser[0].fName,\r\n LName: payload.associatedUser[0].lName,\r\n Dept: payload.associatedUser[0].dept,\r\n Desig: payload.associatedUser[0].desig,\r\n Stat: payload.associatedUser[0].stat,\r\n IsValid: payload.associatedUser[0].isValid,\r\n IsActive: payload.associatedUser[0].isActive,\r\n ChangePWD: payload.associatedUser[0].changePWD,\r\n ChangePWDMust: payload.associatedUser[0].changePWDMust,\r\n UserPrefMenu: payload.associatedUser[0].userPrefMenu,\r\n DOB: payload.associatedUser[0].dob,\r\n RCAssociatedSiteSrNo: payload.associatedUser[0].rcAssociatedSiteSrNo,\r\n RCVFSPermit: payload.associatedUser[0].rcvfsPermit,\r\n RCOCTPermit: payload.associatedUser[0].rcoctPermit,\r\n RCDesig: payload.associatedUser[0].rcDesig,\r\n ContactNumber: payload.associatedUser[0].contactNumber,\r\n Email: payload.associatedUser[0].email,\r\n usrMFA: payload.associatedUser[0].usrMFA\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const processDevice = (context, payload) =>\r\n axios.post(\"/api/device/deviceprocess\", {\r\n devSrNo: payload.devSrNo,\r\n devType: payload.devType,\r\n devName: payload.devName,\r\n devProc: payload.devProc,\r\n devDescrition: payload.devDescrition,\r\n isActive: payload.isActive,\r\n ignoreRotation: payload.ignoreRotation,\r\n orderByLaterality: payload.orderByLaterality,\r\n defaultZoomFactor: payload.defaultZoomFactor,\r\n devConfig: payload.devConfig\r\n }).then(response => {\r\n return Promise.resolve(response);\r\n });\r\n\r\nexport const getDeviceLogs = ({commit}, payload) => {\r\n return axios.post(\"/api/device/devicelogs\", {\r\n devSrNo: payload.devSrNo,\r\n sortBy: payload.sortBy,\r\n itemsPerPage: payload.itemsPerPage,\r\n page: payload.page,\r\n sortDesc: payload.sortDesc\r\n }).then(response => {\r\n commit(\"setDeviceLogs\", response.data.data);\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n}\r\n// #endregion\r\n\r\n// #region user preferences\r\nexport const getUserPrefs = ({ getters, commit }) =>\r\n axios.post(\"/api/account/getuserpref\")\r\n .then(response => {\r\n let userPrefs = response.data.data;\r\n if (userPrefs) {\r\n commit(\"setUserPrefs\", userPrefs);\r\n if (userPrefs.patientTimespan) commit(\"setSearchTimespan\", userPrefs.patientTimespan);\r\n else commit(\"setSearchTimespan\", getters.defaultPatientListing);\r\n if (userPrefs.autoPatientExamRefresh) setupRefreshPatientLoop();\r\n else disableRefreshPatientLoop();\r\n if (((userPrefs.fullscreen && router.currentRoute.path == \"/login\" && !getters.isFullscreen) || (userPrefs.fullscreen == 0 && getters.isFullscreen)) && !getters.calledFullscreenToggle) {\r\n commit(\"setCalledFullscreenToggle\");\r\n setTimeout(() => {\r\n commit(\"toggleFullscreen\");\r\n router.push(\"/\");\r\n }, 500);\r\n }\r\n }\r\n else commit(\"setSearchTimespan\", getters.defaultPatientListing);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\nexport const setUserPrefs = ({ commit }, payload) =>\r\n axios.post(\"/api/account/setuserpref\", {\r\n fullscreen: payload.fullscreen,\r\n patientTimespan: payload.patientDateSetting,\r\n defaultColorTheme: payload.defaultColorTheme,\r\n pageSize: payload.pageSize,\r\n autoPatientExamRefresh: payload.autoPatientExamRefresh,\r\n defaultHVF: payload.defaultHVF,\r\n defaultCirrusView: payload.defaultCirrusView,\r\n defaultHVFview: payload.defaultHVFview,\r\n multiviewCollapse: payload.multiviewCollapse,\r\n cirrusScanDisplayRatio: payload.cirrusScanDisplayRatio\r\n }).then(() => {\r\n var userPrefs = {\r\n usrSrNo: payload.SrNo,\r\n fullscreen: payload.fullscreen,\r\n patientTimespan: payload.patientDateSetting,\r\n defaultColorTheme: payload.defaultColorTheme,\r\n pageSize: payload.pageSize,\r\n autoPatientExamRefresh: payload.autoPatientExamRefresh,\r\n defaultHVF: payload.defaultHVF,\r\n defaultCirrusView: payload.defaultCirrusView,\r\n defaultHVFview: payload.defaultHVFview,\r\n multiviewCollapse: payload.multiviewCollapse,\r\n cirrusScanDisplayRatio: payload.cirrusScanDisplayRatio\r\n };\r\n commit(\"setUserPrefs\", userPrefs);\r\n }).catch(error => Promise.reject(error.response));\r\n\r\nexport const loginChangePass = (context, payload) =>\r\n axios.post(\"/api/account/loginpasschange\", payload)\r\n .then(response => Promise.resolve(response.data))\r\n .catch(error => Promise.reject(error.response));\r\n// #endregion\r\n\r\n// #region edit patients/exams\r\nexport const removePatientExam = (context, payload) =>\r\n axios\r\n .delete(\"/api/exam/\" + payload)\r\n .catch(error => Promise.reject(error.response));\r\nexport const submitEditExam = ({ getters, dispatch }) => {\r\n logDetailed(\"actions\", \"submitEditExam\");\r\n let editToExam = getters.examToEdit;\r\n if (editToExam)\r\n dispatch(\"editExam\").then(() => {\r\n logDetailed(\"actions\", \"submitEditExam\", \"getting patients and patient exams\");\r\n dispatch(\"getPatients\")\r\n .finally(() => dispatch(\"getPatientExams\"));\r\n return Promise.resolve();\r\n })\r\n\r\n return Promise.resolve();\r\n};\r\nexport const generateExamZip = ({ commit, getters }, exam) => {\r\n let patient = getters.patient;\r\n if (!exam || !patient) return;\r\n let request = {\r\n ptSrNo: patient.ptSrNo,\r\n lastName: patient.lastName,\r\n firstName: patient.firstName,\r\n dob: patient.dob,\r\n exSrNo: [exam.exSrNo],\r\n exDate: [exam.exDate],\r\n exDevice: [exam.exDevice]\r\n };\r\n commit(\"setLoadingMessage\", \"Generating zip file\");\r\n return axios.post(\"/api/exam/generateZip\", request)\r\n .catch(error => {\r\n commit(\"displayStatus\", { message: \"An error occurred while generating the zip file, please try again later.\", level: \"error\" });\r\n return Promise.reject(error);\r\n })\r\n .then(response => commit(\"setExamToDownload\", response.data))\r\n .finally(() => commit(\"setLoadingMessage\", null));\r\n};\r\nexport const generateExamZipForChecked = ({ commit, getters }) => {\r\n let patient = getters.patient;\r\n let selectedExams = getters.selectedExams;\r\n if (selectedExams.length == 0 || !selectedExams)\r\n selectedExams = getters.exams;\r\n if (!selectedExams || !patient) return;\r\n let exSrNoList = [];\r\n let exDateList = [];\r\n let exDeviceList = [];\r\n selectedExams.forEach(e => {\r\n exSrNoList.push(e.exSrNo);\r\n exDateList.push(e.exDate);\r\n exDeviceList.push(e.exDevice);\r\n });\r\n let request = {\r\n ptSrNo: patient.ptSrNo,\r\n lastName: patient.lastName,\r\n firstName: patient.firstName,\r\n dob: patient.dob,\r\n exSrNo: exSrNoList,\r\n exDate: exDateList,\r\n exDevice: exDeviceList\r\n };\r\n commit(\"setLoadingMessage\", \"Generating zip file\");\r\n axios.post(\"/api/exam/generateZip\", request)\r\n .catch(error => {\r\n commit(\"displayStatus\", { message: \"An error occurred while generating the zip file, please try again later.\", level: \"error\" });\r\n return Promise.reject(error);\r\n })\r\n .then(response => commit(\"setExamToDownload\", response.data))\r\n .finally(() => commit(\"setLoadingMessage\", null));\r\n};\r\nexport const downloadExamZip = ({ commit, dispatch, getters }) => {\r\n if (!getters.examToDownload || !getters.examToDownload.retObject) return;\r\n let fileName = getters.examToDownload.retObject;\r\n let escaped = encodeURIComponent(getters.examToDownload.retObject);\r\n commit(\"setLoadingMessage\", \"Downloading zip file\");\r\n axios.get(\"api/exam/zip/?fileName=\" + escaped, {\r\n responseType: \"arraybuffer\"\r\n }).then(response => {\r\n let blob = new Blob([response.data], { type: \"application/zip\" });\r\n return dispatch(\"downloadBlob\", { blob, fileName });\r\n }).catch(() => {\r\n commit(\"displayStatus\", { message: \"An error occurred while downloading the zip file, please try again later.\", level: \"error\" });\r\n }).finally(() => {\r\n commit(\"setLoadingMessage\", null);\r\n });\r\n};\r\nexport const downloadBlob = (context, { blob, fileName }) => {\r\n saveBlob(blob, fileName);\r\n};\r\nexport const addPatient = (context, patient) =>\r\n axios.post(\"/api/patient\", {\r\n PtId: patient.ptId,\r\n LastName: patient.lastName,\r\n FirstName: patient.firstName,\r\n DateOfBirth: patient.dob,\r\n Gender: patient.gender\r\n }).catch(error => Promise.reject(error.response));\r\nexport const editPatient = (context, patient) =>\r\n axios.put(\"/api/patient\", {\r\n PtSrNo: patient.ptSrNo,\r\n PtId: patient.ptId,\r\n LastName: patient.lastName,\r\n FirstName: patient.firstName,\r\n DateOfBirth: patient.dob,\r\n Gender: patient.gender,\r\n ValidityStatus: patient.status\r\n }).catch(error => Promise.reject(error.response));\r\nexport const saveExam = (context, patient) => {\r\n let eyes = [];\r\n let eyeString = \"\";\r\n for (let i = 0; i < patient.files.length; i++) {\r\n if (!eyes.includes(patient.files[i].eye))\r\n eyes.push(patient.files[i].eye);\r\n }\r\n for (let j = 0; j < eyes.length; j++) {\r\n if (j == eyes.length - 1)\r\n eyeString = eyeString.concat(eyes[j]);\r\n else\r\n eyeString = eyeString.concat(eyes[j] + \", \");\r\n }\r\n return axios.post(\"/api/exam\", {\r\n PtSrNo: patient.ptSrNo,\r\n ExSrNo: patient.exam.exSrNo,\r\n DeviceSrNo: patient.exam.type,\r\n Date: patient.exam.date,\r\n PhysicianSrNo: patient.exam.physician,\r\n Eye: eyeString\r\n }).catch(error => Promise.reject(error.response));\r\n};\r\nexport const editExam = ({ dispatch }) => Promise.all([\r\n dispatch(\"editExamPhysician\"),\r\n dispatch(\"editExamDiagnosis\"),\r\n dispatch(\"editExamDate\"),\r\n dispatch(\"editExamDictation\"),\r\n dispatch(\"editExamTeachingCase\"),\r\n dispatch(\"editExamImagesInfo\")\r\n]);\r\nexport const editExamPhysician = ({ getters, commit }) => {\r\n return axios.post(\"/api/exam/editPhysician\", {\r\n ExSrNo: getters.examToEdit.exSrNo,\r\n Date: getters.examToEdit.dateIso,\r\n ExAttdMDList: getters.examToEdit.exAttdMD.map(Number),\r\n ExRefMDList: getters.examToEdit.exRefMD.map(Number),\r\n ExDevice: getters.examToEdit.exDevice\r\n }).catch(error => {\r\n commit(\"displayStatus\", { message: \"Error saving exam physician data.\", level: \"error\" });\r\n return Promise.reject(error.response);\r\n });\r\n};\r\nexport const editExamDiagnosis = ({ getters, commit }) => {\r\n return axios.post(\"/api/exam/editDiagnosis\", {\r\n ExSrNo: getters.examToEdit.exSrNo,\r\n Date: getters.examToEdit.dateIso,\r\n PrimaryDX: getters.examToEdit.exDxPrimary,\r\n SecondaryDX: getters.examToEdit.exDXSecondary,\r\n Pathology: getters.examToEdit.exPathology,\r\n ExDevice: getters.examToEdit.exDevice\r\n }).catch(error => {\r\n commit(\"displayStatus\", { message: \"Error saving exam diagnosis data.\", level: \"error\" });\r\n return Promise.reject(error.response);\r\n });\r\n};\r\nexport const editExamDate = ({ getters, commit }) => {\r\n axios.post(\"/api/exam/editExamDate\", {\r\n ExSrNo: getters.examToEdit.exSrNo,\r\n Date: getters.examToEdit.dateIso,\r\n ExDevice: getters.examToEdit.exDevice\r\n }).catch(error => {\r\n commit(\"displayStatus\", { message: \"Error saving exam date data.\", level: \"error\" });\r\n return Promise.reject(error.response);\r\n });\r\n};\r\nexport const editExamDictation = ({ getters, commit }) => {\r\n axios.post(\"/api/exam/editDictation\", {\r\n ExSrNo: getters.examToEdit.exSrNo,\r\n ExDict: getters.examToEdit.exDict,\r\n }).catch(error => {\r\n commit(\"displayStatus\", { message: \"Error saving exam dictation data.\", level: \"error\" });\r\n return Promise.reject(error.response);\r\n });\r\n};\r\nexport const editExamTeachingCase = ({ getters, commit }) => {\r\n axios.post(\"/api/exam/editTeachingCase\", {\r\n ExSrNo: getters.examToEdit.exSrNo,\r\n ExIsStudy: getters.examToEdit.exIsStudy,\r\n }).catch(error => {\r\n commit(\"displayStatus\", { message: \"Error saving exam teaching case data.\", level: \"error\" });\r\n return Promise.reject(error.response);\r\n });\r\n};\r\nexport const editExamImagesInfo = ({getters, commit}) => {\r\n commit(\"updateExamImageDate\", getters.examToEdit);\r\n};\r\nexport const mergePatients = (context, ptSrNos) =>\r\n axios\r\n .post(\"/api/patient/merge\", ptSrNos)\r\n .catch(error => Promise.reject(error.response));\r\n// #endregion\r\n\r\n// #region image browser\r\nexport const openBrowserForImage = ({ dispatch, commit, getters }, image) => {\r\n if (getters.loadingExams) {\r\n commit(\"displayStatus\", { message: \"Please wait for all exam data to load, then try again.\", level: \"error\" });\r\n return;\r\n }\r\n\r\n if (image.imgType == \"VIDEO\") {\r\n let imgData = image.imgData;\r\n if (imgData) {\r\n if (imgData.endsWith(\"wmv\")) {\r\n commit(\"displayStatus\", { message: \"The format of this exam (wmv) is no longer supported. Please re-upload the exam in an mp4 or avi format.\", level: \"error\" });\r\n return;\r\n }\r\n }\r\n dispatch(\"openVideoViewer\", image);\r\n }\r\n else {\r\n if (image.imgType == \"IMAGE-SS\" || image.imgType == \"IMAGE-ST\") {\r\n commit(\"displayStatus\", { message: \"The format of this exam (wmv) is no longer supported. Please re-upload the exam in an mp4 or avi format.\", level: \"error\" });\r\n return;\r\n }\r\n else dispatch(\"openImageBrowser\", image.imgKey);\r\n if (getters.isIE) router.push(\"imageBrowserTest\");\r\n }\r\n return axios.post(\"/api/exam/log/\" + image.exSrNo);\r\n};\r\nexport const openImageBrowser = ({ dispatch }, imgKey) => {\r\n return dispatch(\"setBrowserContext\", generateContextForImage(imgKey, false));\r\n};\r\nexport const setBrowserContext = ({ commit, getters }, context) => {\r\n if (context) {\r\n if (getters.imageBrowserContext) getters.imageBrowserContext.clearContext();\r\n commit(\"setBrowserContext\", context);\r\n commit(\"addToBrowserStack\", context);\r\n if (getters.imageBrowserContext && getters.imageBrowserContext.startupTask)\r\n getters.imageBrowserContext.startupTask();\r\n if (getters.imageBrowserContext && getters.imageBrowserContext.reloadChildrenContext) {\r\n getters.imageBrowserContext.reloadChildrenContext();\r\n }\r\n }\r\n else\r\n commit(\"displayStatus\", { message: \"This exam can't be displayed yet.\", level: \"error\" });\r\n};\r\nexport const closeImageBrowser = ({ commit, dispatch }) => {\r\n commit(\"clearBrowserContext\");\r\n dispatch(\"popBrowserStack\");\r\n};\r\n\r\n// #region selectImages\r\nexport const selectNextImage = ({ getters, dispatch }) => {\r\n let start = getters.imageIndex;\r\n let next = Math.min(getters.imageIndex + 1, getters.browserImages.length - 1);\r\n if (!getters.browserImages[next].imgType.includes(\"IMAGE\") && !VALID_IMG_TYPES.includes(getters.browserImages[next].imgType)) {\r\n while (!getters.browserImages[next].imgType.includes(\"IMAGE\") && !VALID_IMG_TYPES.includes(getters.browserImages[next].imgType)) {\r\n next += 1;\r\n if (next >= getters.browserImages.length) next = 0;\r\n if (next == start) break;\r\n }\r\n }\r\n dispatch(\"selectImageByIndex\", next);\r\n};\r\nexport const selectPreviousImage = ({ getters, dispatch }) => {\r\n let start = getters.imageIndex;\r\n let next = Math.max(getters.imageIndex - 1, 0);\r\n if (!getters.browserImages[next].imgType.includes(\"IMAGE\") && !VALID_IMG_TYPES.includes(getters.browserImages[next].imgType)) {\r\n while (!getters.browserImages[next].imgType.includes(\"IMAGE\") && !VALID_IMG_TYPES.includes(getters.browserImages[next].imgType)) {\r\n next -= 1;\r\n if (next < 0) next = getters.browserImages.length - 1;\r\n if (next == start) break;\r\n }\r\n }\r\n dispatch(\"selectImageByIndex\", next);\r\n};\r\nexport const playImages = ({ getters, dispatch, commit }) => {\r\n if (!getters.imageBrowserContext) return;\r\n let intervalId = setInterval(\r\n () => dispatch(\"playNextImage\"),\r\n 1000 * Number(getters.playRate)\r\n );\r\n commit(\"setPlayInterval\", intervalId);\r\n};\r\nexport const playNextImage = ({ getters, dispatch }) => {\r\n let start = getters.imageIndex;\r\n let next = getters.imageIndex + 1;\r\n if (next > getters.browserImages.length - 1)\r\n next = 0;\r\n if (!getters.browserImages[next].imgType.includes(\"IMAGE\") && !VALID_IMG_TYPES.includes(getters.browserImages[next].imgType)) {\r\n while (!getters.browserImages[next].imgType.includes(\"IMAGE\") && !VALID_IMG_TYPES.includes(getters.browserImages[next].imgType)) {\r\n next += 1;\r\n if (next >= getters.browserImages.length) next = 0;\r\n if (next == start) break;\r\n }\r\n }\r\n if (next >= getters.browserImages.length) next = 0;\r\n dispatch(\"selectImageByIndex\", next);\r\n};\r\nexport const selectImageByIndex = ({ getters, commit, dispatch }, index) => {\r\n let image = getters.browserImages[index];\r\n if (getters.imageIndex !== index) {\r\n if ((VALID_IMG_TYPES.includes(image.imgType)) && getters.imageBrowserContext)\r\n commit(\"selectImage\", image);\r\n else {\r\n if (image.imgData && image.imgData.endsWith(\"wmv\") || image.imgType == \"IMAGE-SS\" || image.imgType == \"IMAGE-ST\") {\r\n commit(\"displayStatus\", { message: \"The format of this exam (wmv) is no longer supported. Please re-upload the exam in an mp4 or avi format.\", level: \"error\" });\r\n return;\r\n }\r\n dispatch(\"openVideoViewer\", image);\r\n dispatch(\"closeImageBrowser\");\r\n }\r\n }\r\n};\r\nexport const selectImageFromImageDrawer = ({ getters, commit, dispatch }, index) => {\r\n if (getters.browserImages.length < 1) {\r\n let images = getters.imagesByExSrNo(getters.videoExSrNo);\r\n let image = images[index];\r\n if (image.imgData && image.imgData.endsWith(\"wmv\") || image.imgType == \"IMAGE-SS\" || image.imgType == \"IMAGE-ST\") {\r\n commit(\"displayStatus\", { message: \"The format of this exam (wmv) is no longer supported. Please re-upload the exam in an mp4 or avi format.\", level: \"error\" });\r\n return null;\r\n }\r\n if (VALID_IMG_TYPES.includes(image.imgType)) {\r\n dispatch(\"openImageBrowser\", image.imgKey);\r\n commit(\"clearVideoViewer\");\r\n }\r\n else {\r\n dispatch(\"openVideoViewer\", image);\r\n dispatch(\"closeImageBrowser\");\r\n }\r\n }\r\n else {\r\n dispatch(\"selectImageByIndex\", index);\r\n }\r\n}\r\n\r\n// #endregion\r\n\r\n// #region color correction\r\nexport const toggleGrayscaleMode = ({ commit, dispatch, getters }, mode) => {\r\n commit(\"flattenedImageReady\", false);\r\n if (getters.rgbView) {\r\n dispatch(\"selectRGBViewByMode\", mode);\r\n } else {\r\n commit(\"toggleGrayscaleMode\", mode);\r\n }\r\n};\r\nexport const clearGrayscaleMode = ({ commit, dispatch, getters }) => {\r\n commit(\"flattenedImageReady\", false);\r\n if (getters.rgbView) {\r\n dispatch(\"selectRGBViewByMode\", GRAYSCALE_MODES.None);\r\n } else {\r\n commit(\"clearGrayscaleMode\");\r\n }\r\n};\r\nexport const updateBrightness = ({ commit, dispatch, getters }, brightness) => {\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"updateBrightness\", brightness);\r\n if (getters.rgbView) dispatch(\"updateRGBSync\");\r\n};\r\nexport const updateContrast = ({ commit, dispatch, getters }, contrast) => {\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"updateContrast\", contrast);\r\n if (getters.rgbView) dispatch(\"updateRGBSync\");\r\n};\r\nexport const updateGamma = ({ commit, dispatch, getters }, gamma) => {\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"updateGamma\", gamma);\r\n if (getters.rgbView) dispatch(\"updateRGBSync\");\r\n};\r\nexport const updateGreenBrightness = ({ commit, dispatch, getters }, brightness) => {\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"updateGreenBrightness\", brightness);\r\n if (getters.rgbView) dispatch(\"updateRGBSync\");\r\n};\r\nexport const updateGreenContrast = ({ commit, dispatch, getters }, contrast) => {\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"updateGreenContrast\", contrast);\r\n if (getters.rgbView) dispatch(\"updateRGBSync\");\r\n};\r\n// #endregion\r\n\r\n// #region transformations\r\nexport const toggleFlipped = ({ commit, getters }) => {\r\n commit(\"clearAnnotationMode\");\r\n commit(\"clearActiveAnnotation\");\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"toggleFlipped\");\r\n\r\n if (getters.rgbView)\r\n if (getters.rgbSync) commit(\"replicateMainToAllRGB\");\r\n else commit(\"replicateMainToCurrentRGB\");\r\n};\r\n\r\nexport const toggleFlipped90 = ({ commit, getters }) => {\r\n commit(\"clearAnnotationMode\");\r\n commit(\"clearActiveAnnotation\");\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"toggleFlipped90\");\r\n\r\n if (getters.rgbView)\r\n if (getters.rgbSync) commit(\"replicateMainToAllRGB\");\r\n else commit(\"replicateMainToCurrentRGB\");\r\n};\r\n// #endregion\r\n\r\n// #region annotations\r\nexport const mousedownAnnotation = (\r\n { commit, getters, dispatch },\r\n eventWrapper\r\n) => {\r\n commit(\"flattenedImageReady\", false);\r\n if (getters.activeIsContinuous) {\r\n getters.activeAnnotation.mousedown(eventWrapper.x, eventWrapper.y, eventWrapper.e);\r\n } else {\r\n let previousActive = getters.activeAnnotation;\r\n commit(\"clearActiveAnnotation\");\r\n let annotation = null;\r\n if (getters.inAddMode)\r\n annotation = createAnnotation(commit, getters, eventWrapper);\r\n else if (getters.inEditMode || getters.inShapeFillMode)\r\n annotation = getters.annotationByPosition(eventWrapper);\r\n if (getters.isDragLock && getters.inEditMode) \r\n {\r\n if (annotation == previousActive)\r\n commit(\"setActiveAnnotation\", annotation);\r\n }\r\n else\r\n commit(\"setActiveAnnotation\", annotation);\r\n if (annotation) {\r\n if (getters.inDeleteMode) dispatch(\"deleteActiveAnnotation\");\r\n else if (getters.isDragLock && getters.inEditMode) \r\n {\r\n if (annotation == getters.activeAnnotation)\r\n annotation.mousedown(eventWrapper.x, eventWrapper.y, eventWrapper.e);\r\n }\r\n else {\r\n if (getters.inAddMode && annotation.onCreate) annotation.onCreate();\r\n annotation.mousedown(eventWrapper.x, eventWrapper.y, eventWrapper.e);\r\n }\r\n }\r\n }\r\n};\r\nfunction createAnnotation(commit, getters, position) {\r\n let type = getAnnotationType(getters.annotationMode);\r\n let annotation = type && new type(position, getters.annotationOptions, getters.imageBrowserContext);\r\n if (annotation) {\r\n annotation.setParentTransform(getters.imageTransform);\r\n commit(\"addAnnotation\", annotation);\r\n }\r\n return annotation;\r\n}\r\nexport const deleteActiveAnnotation = ({ commit, getters }) => {\r\n let annotation = getters.activeAnnotation;\r\n if (!annotation.delete()) return;\r\n commit(\"flattenedImageReady\", false);\r\n annotation.deactivate();\r\n commit(\"clearActiveAnnotation\");\r\n commit(\"deleteAnnotation\", getters.annotationIndex(annotation));\r\n};\r\n// #endregion\r\n\r\n// #region image flattening\r\nexport const generateFlatImage = ({ commit, getters }) => new Promise(resolve => {\r\n commit(\"clearActiveAnnotation\");\r\n let img = getters.imgObject;\r\n let settings = getters.imageColorSettings;\r\n\r\n let canvas = getters.saveCanvas;\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n let renderer = new CanvasRenderer(canvas);\r\n renderer.doScaleToPixelRatio = false;\r\n renderer.canvasSize = getters.imgSize;\r\n renderer.imgSize = getters.imgSize;\r\n renderer.isFlipped = getters.isFlipped;\r\n if (hasCustomPixelColorSettings(settings)) {\r\n // note: this method puts image data directly onto the canvas\r\n drawShadedImage(img, canvas, applyPixelShadingRules, settings);\r\n } else {\r\n renderer.drawImg(img);\r\n }\r\n // note: using \"render\" instead of \"draw\" here because draw erases the canvas!\r\n let ctx = canvas.getContext(\"2d\");\r\n getters.annotations.forEach(a => renderer.renderAnnotation(a, ctx));\r\n\r\n commit(\"flattenedImageReady\", true);\r\n resolve();\r\n});\r\n// #endregion\r\n\r\n// #region rgb\r\nexport const toggleRGB = ({ commit, getters }) => {\r\n commit(\"toggleRGB\");\r\n if (getters.rgbView) commit(\"replicateMainToAllRGB\");\r\n};\r\nexport const toggleRGBSync = ({ commit, dispatch, getters }) => {\r\n commit(\"toggleRGBSync\");\r\n if (getters.rgbSync) dispatch(\"updateRGBSync\");\r\n};\r\nexport const toggleGreenSync = ({ commit, dispatch, getters }) => {\r\n commit(\"toggleGreenSync\");\r\n if (getters.greenSync) dispatch(\"updateRGBSync\");\r\n};\r\nexport const selectRGBView = ({ commit, getters }, index) => {\r\n if (getters.currentRGBView && getters.currentRGBIndex !== index) {\r\n commit(\"flattenedImageReady\", false);\r\n commit(\"selectRGBView\", index);\r\n commit(\"replicateCurrentRGBToMain\");\r\n }\r\n};\r\nexport const selectRGBViewByMode = ({ dispatch, getters }, mode) => {\r\n let index = getters.rgbIndexByMode(mode);\r\n if (index === getters.currentRGBIndex) index = 0;\r\n dispatch(\"selectRGBView\", index);\r\n};\r\nexport const updateRGBSync = ({ commit, getters }) => {\r\n commit(\"replicateMainToCurrentRGB\");\r\n if (getters.rgbSync) commit(\"replicateMainToAllRGB\");\r\n if (getters.greenSync) commit(\"replicateGreenMainToAllRGB\");\r\n};\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #region oct browser\r\n\r\n// #region oct images\r\nexport const getOCTInfo = (context, request) =>\r\n axios.post(\"api/image/octInfo\", request);\r\nexport const loadOCTImages = ({ dispatch, getters }) =>\r\n dispatch(\"loadOCTQueues\", getters.octImagesForCurrentBrowser);\r\nexport const loadOCTImagesForMultiview = ({ dispatch, getters }) =>\r\n dispatch(\"loadOCTQueues\", getters.getOCTImagesForMultiview);\r\nexport const loadOCTQueues = ({ commit, dispatch }, images) => {\r\n commit(\"purgeOldOCTImages\", images);\r\n let queues = constructOCTQueues(images);\r\n queues.map(queue => {\r\n commit(\"clearImageQueue\", queue.key);\r\n commit(\"setImageQueue\", { queue, queueKey: queue.key });\r\n });\r\n let promises = queues.map(queue => dispatch(\"loadQueue\", queue.key));\r\n return Promise.all(promises);\r\n};\r\nfunction constructOCTQueues(images) {\r\n let fullLine = { next: 0, queue: [], concurrent: 5, cancelled: false, action: \"loadOCTImage\", key: \"octFullQueue\" };\r\n let segmentationLine = { next: 0, queue: [], concurrent: 5, cancelled: false, action: \"loadOCTSegmentation\", key: \"octSegmentationQueue\" };\r\n images.forEach(image => {\r\n if (!imageAlreadyLoaded(image, \"img\"))\r\n fullLine.queue.push({ image, prefix: \"img\" });\r\n if (image.loadSegmentation && !imageAlreadyLoaded(image, \"segmentation\"))\r\n segmentationLine.queue.push(image);\r\n });\r\n return [segmentationLine, fullLine];\r\n}\r\nexport const loadOCTImage = ({ dispatch }, { image, prefix }) => {\r\n let request = generateOCTLoadRequest(image, prefix), action = \"getOCTImage\", mutation = \"setOCTImageState\";\r\n return dispatch(\"doLoadImage\", { request, action, mutation, image, prefix });\r\n};\r\nexport const loadOCTSegmentation = ({ commit, dispatch }, image) => {\r\n // if this image was already loaded, don't try to load it again\r\n if (imageAlreadyLoaded(image, \"segmentation\")) return Promise.resolve();\r\n let imageState = {\r\n segmentationIsLoading: true,\r\n segmentationIsQueued: false,\r\n imgKey: image.imgKey\r\n };\r\n commit(\"setOCTImageState\", imageState);\r\n let loadRequest = generateOCTLoadRequest(image, \"segmentation\");\r\n return dispatch(\"getOCTImage\", loadRequest)\r\n .then(response => processZipFile(response.data))\r\n .then(data => {\r\n imageState.sliceSegmentationLayerData = data.layerData;\r\n processSegmentationData(imageState);\r\n })\r\n .catch(() => {\r\n imageState.segmentationNotFound = true;\r\n })\r\n .finally(() => {\r\n imageState.segmentationIsLoading = false;\r\n commit(\"setOCTImageState\", imageState);\r\n });\r\n};\r\nfunction generateOCTLoadRequest(image, prefix) {\r\n let request = {\r\n ptSrNo: image.ptSrNo,\r\n exSrNo: image.exSrNo,\r\n groupName: image.groupName,\r\n fileName: image.fileName,\r\n imageType: image.imageType,\r\n imageFormat: image.imageFormat,\r\n index: image.index,\r\n originalIndex: image.originalIndex,\r\n width: image.width,\r\n height: image.height\r\n };\r\n\r\n if (prefix === \"preview\") {\r\n request.isPreview = true;\r\n request.width = Math.min(200, image.width || 200);\r\n request.height = Math.min(200, image.height || 200);\r\n } else if (prefix === \"segmentation\") {\r\n request.imageType = image.segmentationImageType || image.imageType;\r\n } else if (prefix === \"cscan\") {\r\n request.imageType = \"cscan\";\r\n }\r\n return request;\r\n}\r\nfunction processZipFile(data) {\r\n return JSZip.loadAsync(data, { base64: true })\r\n .then(generateLayerPromises)\r\n .then(layerData => Promise.resolve({ src: data, layerData }));\r\n}\r\nfunction generateLayerPromises(zip) {\r\n let promises = [];\r\n for (var key in SliceLayerTypes) {\r\n let promise = zip.files[key] ? loadZipFile(zip, key)\r\n : Promise.resolve(new Float64Array(0));\r\n promises.push(promise);\r\n }\r\n return Promise.all(promises);\r\n}\r\nfunction loadZipFile(zip, key) {\r\n return zip.files[key].async(\"arraybuffer\")\r\n .then(buf => Promise.resolve(new Float64Array(buf)));\r\n}\r\nfunction processSegmentationData(imageState) {\r\n let layerData = imageState.sliceSegmentationLayerData;\r\n if (!layerData || !layerData.length) return;\r\n let ilm = layerData[SliceLayerTypes.Ilm];\r\n let rpe = layerData[SliceLayerTypes.Rpe];\r\n if (!ilm || !rpe) return;\r\n let thicknessData = new Float64Array(ilm.length);\r\n for (let i = 0; i < Math.min(ilm.length, rpe.length); i++) {\r\n if (ilm[i] > 0 && rpe[i] > 0) thicknessData[i] = Math.abs(ilm[i] - rpe[i]);\r\n }\r\n imageState.sliceSegmentationThicknessData = thicknessData;\r\n}\r\nexport const getOCTImage = (context, payload) =>\r\n axios.get(\"/api/image/octImage\", { params: payload })\r\n .catch(error => Promise.reject(error.response));\r\nexport const loadOCTImageImmediately = ({ dispatch }, { image, key, view }) => {\r\n let uniqueKey = [key, view].filter(w => w).join(\"_\");\r\n return debouncedLoadOCTImageCall(dispatch, image, uniqueKey);\r\n};\r\n// a unique key is passed into the debounced call which will be used within the debounce utility\r\n// this key differentiates between compare_slice and baseline_slice, for example, so that both\r\n// are debounced separately\r\nconst debouncedLoadOCTImageCall = debouncePerKey(function (dispatch, image) { // , uniqueKey\r\n let loadPreview = image.loadPreview ? dispatch(\"loadOCTImage\", { image, prefix: \"preview\" })\r\n : Promise.resolve();\r\n loadPreview.then(() => dispatch(\"loadOCTImage\", { image, prefix: \"img\" }));\r\n}, 50, false, 2);\r\n// #endregion\r\n\r\n// #region composite\r\nexport const selectNextComposite =({ getters, dispatch }) => {\r\n let next = 0;\r\n if (getters.compositeCurrentIndex + 1 <= getters.composites.length - 1)\r\n next = getters.compositeCurrentIndex + 1;\r\n dispatch(\"selectOCTImageByIndex\", {keyword: \"composite\", index: next});\r\n};\r\n\r\nexport const selectPreviouscomposite = ({ getters, dispatch }) => {\r\n let next = getters.composites.length - 1;\r\n if (getters.compositeCurrentIndex - 1 >= 0)\r\n next = getters.compositeCurrentIndex - 1;\r\n dispatch(\"selectOCTImageByIndex\", {keyword: \"composite\", index: next})\r\n};\r\n// #endregion\r\n\r\n// #region oct slices\r\nexport const selectNextSlice = ({ getters, dispatch }) => {\r\n let next = 0;\r\n if (getters.sliceCurrentIndex + 1 <= getters.slices.length - 1)\r\n next = getters.sliceCurrentIndex + 1;\r\n dispatch(\"selectSliceByIndex\", next);\r\n};\r\nexport const selectPreviousSlice = ({ getters, dispatch }) => {\r\n let next = getters.slices.length - 1;\r\n if (getters.sliceCurrentIndex - 1 >= 0)\r\n next = getters.sliceCurrentIndex - 1;\r\n dispatch(\"selectSliceByIndex\", next);\r\n};\r\nexport const playSlices = ({ getters, dispatch, commit }) => {\r\n if (!getters.imageBrowserContext) return;\r\n let intervalId = setInterval(\r\n () => dispatch(\"playNextSlice\"),\r\n 1000 * Number(getters.playRate)\r\n );\r\n commit(\"setPlayInterval\", intervalId);\r\n};\r\nexport const playNextSlice = ({ getters, dispatch }) => {\r\n let next = getters.sliceCurrentIndex + 1;\r\n if (next >= getters.slices.length) next = 0;\r\n dispatch(\"selectSliceByIndex\", next);\r\n};\r\nexport const selectSliceByIndex = ({ commit, getters, dispatch }, index) => {\r\n if (getters.sliceCurrentIndex !== index) {\r\n let measureIndex = getters.isMeasuring ? getters.measureData.index : 0;\r\n let image = getters.slices.find(i => i.index === index);\r\n if (!image) return;\r\n // for now, the only images with playback are slices\r\n dispatch(\"selectOCTImage\", { imgKey: image.imgKey, keyword: \"slice\" }).then(\r\n () => commit(\"setMeasurementIndex\", measureIndex)\r\n );\r\n }\r\n};\r\nexport const selectOCTImageByIndex = (\r\n { getters, dispatch, commit },\r\n { keyword, index }\r\n) => {\r\n let collectionKey = keyword + \"s\";\r\n let collection = getters[collectionKey] || [];\r\n let image = collection.find(v => v.index === index);\r\n if (!image) return;\r\n dispatch(\"selectOCTImage\", { keyword, imgKey: image.imgKey })\r\n .then(() => {\r\n if (keyword == \"slice\") {\r\n let measureIndex = getters.isMeasuring ? getters.measureData.index : 0;\r\n commit(\"setMeasurementIndex\", measureIndex);\r\n }\r\n });\r\n\r\n};\r\nexport const selectOCTImage = ({ commit }, { imgKey, keyword }) => {\r\n let currentKey = keyword + \"Current\";\r\n commit(\"selectOCTImage\", { currentKey, imgKey: imgKey });\r\n};\r\n// #endregion\r\n\r\n// #region oct exam/series/eye\r\nexport const selectOCTExam = ({ commit, dispatch, getters }, exSrNo) => {\r\n if (exSrNo === getters.exSrNo) return;\r\n let context = generateContextFromExam(exSrNo);\r\n if (context) return dispatch(\"setBrowserContext\", context);\r\n\r\n commit(\"displayStatus\", { message: \"No OCT data can be displayed for this exam.\", level: \"error\" });\r\n};\r\nexport const selectOCTExamByExamText = ({ commit, dispatch, getters }, examText) => {\r\n let exam = getters.octExamsWithScanTypes.filter(e => e.octDateButtonText == examText);\r\n if (exam.length > 0) {\r\n let groupkey = getters.currentEye === \"OD\" ? \"odGroups\" : \"osGroups\", group = \"\";\r\n exam[0][groupkey].forEach(e => {\r\n if (e.browserType != 1) { \r\n if (exam[0].dateDisplay + \" - \" + e.eye + \" \" + e.groupSeriesType + \" (\" + exam[0].exSrNo + \")\" == examText)\r\n group = e.groupName;\r\n }\r\n else {\r\n if (exam[0].dateDisplay + \" - \" + e.groupSeriesType + \" (\" + exam[0].exSrNo + \")\" == examText)\r\n group = e.groupName;\r\n }\r\n })\r\n let context = generateContextFromGroupAndExSrNo(group, exam[0].exSrNo);\r\n if (context) return dispatch(\"setBrowserContext\", context);\r\n }\r\n\r\n commit(\"displayStatus\", { message: \"No OCT data can be displayed for this exam.\", level: \"error\" });\r\n};\r\nexport const selectOCTGroup = ({ commit, dispatch, getters }, group) => {\r\n if (group === getters.currentGroup) return;\r\n let context = generateContextFromGroupName(group);\r\n if (context) return dispatch(\"setBrowserContext\", context);\r\n\r\n commit(\"displayStatus\", { message: \"No OCT data can be displayed for this group.\", level: \"error\" });\r\n};\r\nexport const selectOCTEye = ({ commit, dispatch, getters }, eye) => {\r\n if (eye === getters.currentEye) return;\r\n let context = generateContextFromEye(eye);\r\n if (context) return dispatch(\"setBrowserContext\", context);\r\n\r\n commit(\"displayStatus\", { message: \"No OCT data can be displayed for this eye.\", level: \"error\" });\r\n};\r\n// #endregion\r\n\r\n// #region oct color correction\r\nexport const toggleInverted = ({ commit }) => {\r\n commit(\"toggleInverted\");\r\n};\r\nexport const toggleColorPalette = ({ commit }) => {\r\n commit(\"toggleColorPalette\");\r\n};\r\n// #endregion\r\n\r\n// #region oct multiview\r\nexport const openOCTMultiviewFromThumbnail = ({ dispatch, getters, commit }, { image, launchOption }) => {\r\n let context = generateContextForImage(image.imgKey, false);\r\n if (context) {\r\n if (getters.imageBrowserContext) getters.imageBrowserContext.clearContext();\r\n commit(\"setBrowserContext\", context);\r\n return dispatch(\"toggleOCTMultiview\", launchOption);\r\n }\r\n else {\r\n commit(\"displayStatus\", { message: \"This exam can't be displayed yet.\", level: \"error\" });\r\n }\r\n};\r\n\r\nexport const toggleOCTMultiview = ({ dispatch, getters }, launchOption) => {\r\n if (!getters.imageBrowserContext) return;\r\n let context = null;\r\n if (getters.currentOCTBrowserType && !getters.isComparisonContext)\r\n context = generateMultiviewFromContext(getters.imageBrowserContext, launchOption);\r\n else if (getters.isComparisonContext)\r\n context = generateOCTContextFromGroup(getters.compare.group, getters.compare.exam);\r\n\r\n return dispatch(\"setBrowserContext\", context);\r\n};\r\nexport const selectOCTExamCompare = ({ getters }, { exSrNo, name }) => {\r\n if (!getters.isComparisonContext) return;\r\n let context = getters.imageBrowserContext;\r\n let groupName = name === \"compare\" ? context.compare.group.groupSeriesType : context.baseline.group.groupSeriesType.split('-')[0];\r\n let exam = getters.octExamsSameType.find(e => e.exSrNo === exSrNo && e.octDateButtonText.includes(groupName));\r\n let group = getFirstRelevantGroup(getters, exam);\r\n return selectOCTCompareView(context, name, group, exam);\r\n};\r\nexport const selectOCTGroupCompare = ({ getters }, { groupName, name }) => {\r\n if (!getters.isComparisonContext) return;\r\n let context = getters.imageBrowserContext;\r\n let exam = name === \"compare\" ? context.compare.exam : context.baseline.exam;\r\n let groups =\r\n getters.currentEye === EyeTypes.OD ? exam.odGroups : exam.osGroups;\r\n let group = groups.filter(g => g.groupName === groupName)[0];\r\n return selectOCTCompareView(context, name, group, exam);\r\n};\r\n\r\nexport const selectOCTExamCompareWithDropdown = ({ getters }, flSrNo) => {\r\n if (!getters.isComparisonContext) return;\r\n let context = getters.imageBrowserContext;\r\n let image = getters.imageByFlSrNo(flSrNo);\r\n let exam = getters.examBySrNo(image.exSrNo);\r\n if (exam) {\r\n let groups = image.imgEye === EyeTypes.OD ? exam.odGroups : exam.osGroups;\r\n let group = groups.find(g => g.recognized && g.groupName === image.imgGroup);\r\n return selectOCTCompareView(context, \"compare\", group, exam, image.imgKey);\r\n }\r\n return selectOCTCompareView(context, \"\", null, null);\r\n};\r\n\r\nexport const selectOCTExamCompareWithExamText = ({ getters }, { examText, name }) => {\r\n if (!getters.isComparisonContext) return;\r\n let context = getters.imageBrowserContext;\r\n let exam = context.exams.filter(e => e.octDateButtonText == examText);\r\n if (exam.length > 0) {\r\n let group = exam[0].odGroups.length > 0 && examText.toLowerCase().includes(\"od\") ? exam[0].odGroups[0] : exam[0].osGroups[0];\r\n if(exam[0].odGroups.length > 1 && examText.toLowerCase().includes(\"od\") && examText.toLowerCase().includes(\"cube\") && group.scanType != \"cube\"){\r\n group = exam[0].odGroups[1];\r\n }\r\n return selectOCTCompareView(context, name, group, exam[0]);\r\n }\r\n return selectOCTCompareView(context, name, null, null);\r\n};\r\nexport const selectSpectralisGroupCompare = ({ getters }, { groupName, name }) => {\r\n if (!getters.isComparisonContext) return;\r\n let context = getters.imageBrowserContext;\r\n if (!context.baseline && name === \"baseline\") {\r\n if (getters.baselineExams.length > 0)\r\n return selectOCTCompareView(context, name, groupName, getters.baselineExams[0]);\r\n return selectOCTCompareView(context, name, groupName, null);\r\n }\r\n let exam = name === \"compare\" ? context.compare.exam : context.baseline.exam;\r\n let groups =\r\n getters.currentEye === EyeTypes.OD ? exam.odGroups : exam.osGroups;\r\n let group = [];\r\n if (groupName != \"All\") {\r\n if (groupName == \"Radial\")\r\n group = groups.filter(g => g.scanType.toLowerCase() === \"star\")[0];\r\n else\r\n group = groups.filter(g => g.scanType.toLowerCase() === groupName.toLowerCase())[0];\r\n }\r\n \r\n else\r\n group = name === \"compare\" ? context.compare.group : context.baseline.group ;\r\n return selectOCTCompareView(context, name, group, exam);\r\n};\r\nfunction selectOCTCompareView(context, name, group, exam, imgKey) {\r\n if (name === \"compare\") return context.selectCompare(group, exam, imgKey);\r\n else return context.selectBaseline(group, exam);\r\n}\r\nexport const selectOCTEyeCompare = ({ commit, dispatch, getters }, eye) => {\r\n if (!getters.isComparisonContext) return;\r\n if (eye === getters.currentEye) return;\r\n let context = generateMultiviewFromEye(getters.imageBrowserContext, eye);\r\n if (context) {\r\n if (context.componentName == \"spectralisComparisonBody\") {\r\n let scanFilter = getters.spectralisScanTypeFilter;\r\n context.updateScanTypeFilter(scanFilter);\r\n }\r\n return dispatch(\"setBrowserContext\", context);\r\n }\r\n\r\n commit(\"displayStatus\", { message: \"No OCT data can be displayed for this eye.\", level: \"error\" });\r\n};\r\nexport const tryGetBaselineContext = ({ getters }, { launchOption }) => {\r\n // if a context isn't open, or isn't a comparison context, or if the current baseline exam is legal,\r\n // then don't bother selecting a new baseline exam\r\n if (!getters.imageBrowserContext || !getters.isComparisonContext\r\n || getters.baselineExams.includes(getters.baseline_exam)) return Promise.resolve();\r\n\r\n let baselineExam = null;\r\n if (launchOption == THUMBNAIL_DROPDOWN.currentBaseline) {\r\n // exams are order by exDateTime DESC, the last one will be the oldest\r\n let sameTypeExams = getters.baselineExams.filter(e => e.scanType == getters.compare.group.scanType);\r\n if (sameTypeExams.length > 0)\r\n baselineExam = sameTypeExams[sameTypeExams.length - 1];\r\n else \r\n {\r\n let oldestExamIndex = getters.baselineExams.length > 1 ? getters.baselineExams.length - 1 : 0;\r\n baselineExam = (getters.baselineExams || [])[oldestExamIndex];\r\n }\r\n }\r\n else {\r\n // exams are order by exDateTime DESC, the last one will be the oldest. For compare + previous, we want the most recent exam of the same type, so the first one\r\n let sameTypeExams = getters.baselineExams.filter(e => e.scanType == getters.compare.group.scanType);\r\n if (sameTypeExams.length > 0)\r\n baselineExam = sameTypeExams[0];\r\n else\r\n baselineExam = getters.baselineExams[0];\r\n }\r\n\r\n if (!baselineExam) {\r\n let group = getFirstRelevantGroup(getters, (getters.compareExams || [])[0]);\r\n return getters.imageBrowserContext.selectBaseline(group, null);\r\n }\r\n\r\n let group = getFirstRelevantGroup(getters, baselineExam);\r\n return getters.imageBrowserContext.selectBaseline(group, baselineExam);\r\n};\r\nfunction getFirstRelevantGroup(getters, exam) {\r\n if (!exam) return null;\r\n return getters.groups(exam, getters.currentEye, getters.currentOCTBrowserType, getters.preferredBrowserType)[0];\r\n}\r\nexport const toggleLocked = ({ commit, getters, dispatch }) => {\r\n if (!getters.isComparisonContext) return;\r\n commit(\"toggleLocked\");\r\n if (getters.isLocked) return dispatch(\"synchronizeOCTCompare\");\r\n};\r\nexport const synchronizeOCTCompare = ({ dispatch, getters }) => {\r\n let compare = getters.compare;\r\n let baseline = getters.baseline;\r\n if (!baseline) return;\r\n\r\n if (baseline.playRate !== compare.playRate)\r\n baseline.setPlayRate(compare.playRate);\r\n\r\n if (baseline.isMeasuring !== compare.isMeasuring)\r\n baseline.toggleMeasuring && baseline.toggleMeasuring();\r\n\r\n if (baseline.measureData && baseline.measureData.index !== compare.measureData.index)\r\n baseline.setMeasurementIndex && baseline.setMeasurementIndex(compare.measureData.index);\r\n\r\n if (baseline.showSegmentation !== compare.showSegmentation)\r\n baseline.toggleSegmentation && baseline.toggleSegmentation();\r\n\r\n if (baseline.showETDRS !== compare.showETDRS)\r\n baseline.toggleETDRS && baseline.toggleETDRS();\r\n\r\n if (baseline.showOverlay !== compare.showOverlay)\r\n baseline.toggleOverlay && baseline.toggleOverlay();\r\n\r\n if (baseline.overlayOpacity !== compare.overlayOpacity)\r\n baseline.updateOverlayOpacity && baseline.updateOverlayOpacity(compare.overlayOpacity);\r\n\r\n if (baseline.octColorSettings.isInverted !== compare.octColorSettings.isInverted)\r\n baseline.toggleInverted && baseline.toggleInverted();\r\n // following if statement:\r\n // need to toggle color palette if one is null and the other is not\r\n // don't need to toggle if both are null, or if both are not null\r\n // colorPalette is an array\r\n if ((baseline.octColorSettings.colorPalette === null) !== (compare.octColorSettings.colorPalette === null))\r\n baseline.toggleColorPalette && baseline.toggleColorPalette();\r\n\r\n let compareIndex = compare.sliceCurrent && compare.sliceCurrent.index;\r\n let baselineIndex = baseline.sliceCurrent && baseline.sliceCurrent.index;\r\n \r\n if (compare.componentName == \"spectralisComparisonView\" && baseline.componentName == \"spectralisComparisonView\") {\r\n let compareSliceCount = getters.compare_slices.length;\r\n let baselineSliceCount = getters.baseline_slices.length;\r\n \r\n if ((compareIndex / compareSliceCount) != (baselineIndex / baselineSliceCount)) {\r\n dispatch(\"selectSliceByIndexProportionCompare\", { view: \"baseline\", index: parseInt(compareIndex / compareSliceCount * baselineSliceCount), synchronizing: true });\r\n }\r\n }\r\n\r\n else {\r\n if (compareIndex !== baselineIndex)\r\n dispatch(\"selectSliceByIndexCompare\", { view: \"baseline\", index: compareIndex });\r\n }\r\n};\r\n// #endregion\r\n\r\n// #region oct image selection\r\nexport const selectNextSliceCompare = ({ getters, dispatch }, view) => {\r\n let context = getters[view];\r\n if (!context) return;\r\n let slices = getters.getSlices(\"slice\", context.exSrNo, context.groupName);\r\n let index = 0;\r\n if (context.sliceCurrent.index + 1 <= slices.length - 1)\r\n index = context.sliceCurrent.index + 1;\r\n\r\n if (context.componentName == \"spectralisComparisonView\")\r\n dispatch(\"selectSliceByIndexProportionCompare\", { view, index });\r\n else\r\n dispatch(\"selectSliceByIndexCompare\", { view, index });\r\n};\r\nexport const selectPreviousSliceCompare = ({ getters, dispatch }, view) => {\r\n let context = getters[view];\r\n if (!context) return;\r\n let slices = getters.getSlices(\"slice\", context.exSrNo, context.groupName);\r\n let index = slices.length - 1;\r\n if (context.sliceCurrent.index - 1 > 0)\r\n index = context.sliceCurrent.index - 1;\r\n \r\n if (context.componentName == \"spectralisComparisonView\")\r\n dispatch(\"selectSliceByIndexProportionCompare\", { view, index });\r\n else\r\n dispatch(\"selectSliceByIndexCompare\", { view, index });\r\n};\r\nexport const playSlicesCompare = ({ commit, getters, dispatch }, view) => {\r\n let context = getters[view];\r\n if (!context) return;\r\n let intervalId = setInterval(() => dispatch(\"playNextSliceCompare\", view), 1000 * Number(context.playRate));\r\n commit(\"setPlayIntervalCompare\", { view, intervalId });\r\n};\r\nexport const playNextSliceCompare = ({ getters, dispatch }, view) => {\r\n let context = getters[view];\r\n if (!context) return;\r\n let slices = getters.getSlices(\"slice\", context.exSrNo, context.groupName);\r\n let index = context.sliceCurrent.index + 1;\r\n if (index >= slices.length) index = 0;\r\n\r\n if (context.componentName == \"spectralisComparisonView\")\r\n dispatch(\"selectSliceByIndexProportionCompare\", { view, index });\r\n else\r\n dispatch(\"selectSliceByIndexCompare\", { view, index });\r\n};\r\nexport const selectSliceByIndexCompare = ({ getters, dispatch }, { index, view }) => {\r\n if (!getters.isComparisonContext) return;\r\n if ((getters.isLocked || view === \"compare\") && getters.compare)\r\n dispatch(\"selectSliceByIndexForView\", { index, view: \"compare\" });\r\n if ((getters.isLocked || view === \"baseline\") && getters.baseline)\r\n dispatch(\"selectSliceByIndexForView\", { index, view: \"baseline\" });\r\n};\r\n\r\nexport const selectSliceByIndexProportionCompare = ({ getters, dispatch }, { index, view, synchronizing = false }) => {\r\n if (!getters.isComparisonContext) return;\r\n if (getters.isLocked && getters.compare && getters.baseline && !synchronizing) {\r\n let selected, toChange, toChangeView;\r\n if (view === \"compare\") {\r\n selected = getters.compare_slices.length;\r\n toChange = getters.baseline_slices.length;\r\n toChangeView = \"baseline\";\r\n }\r\n else if (view === \"baseline\") {\r\n selected = getters.baseline_slices.length;\r\n toChange = getters.compare_slices.length;\r\n toChangeView = \"compare\";\r\n } \r\n\r\n dispatch(\"selectSliceByIndexForView\", { index, view });\r\n let selectedProportion = index / selected;\r\n let toChangeProportion = parseInt(selectedProportion * toChange);\r\n dispatch(\"selectSliceByIndexForView\", { index: toChangeProportion, view: toChangeView });\r\n }\r\n else {\r\n if ((view === \"compare\") && getters.compare)\r\n dispatch(\"selectSliceByIndexForView\", { index, view: \"compare\" });\r\n if ((view === \"baseline\") && getters.baseline)\r\n dispatch(\"selectSliceByIndexForView\", { index, view: \"baseline\" });\r\n }\r\n};\r\n\r\nexport const selectSliceByIndexForView = ({ commit, dispatch, getters }, { view, index }) => {\r\n let context = getters[view];\r\n if (!context) return;\r\n if (context.sliceCurrent && context.sliceCurrent.index !== index) {\r\n let slices = getters.getSlices(\"slice\", context.exSrNo, context.groupName);\r\n let hasMeasureData = context.isMeasuring && !!context.measureData;\r\n let measureIndex = hasMeasureData && context.measureData.index;\r\n let image = slices.find(i => i.index === index);\r\n if (!image) return;\r\n // for now, the only images with playback are slices\r\n dispatch(\"selectOCTImage\", { imgKey: image.imgKey, keyword: \"slice\", view })\r\n .then(() => {\r\n if (hasMeasureData) commit(\"setMeasurementIndexCompare\", { x: measureIndex, view });\r\n });\r\n }\r\n};\r\nexport const selectOCTImageByIndexCompare = (\r\n { getters, dispatch, commit },\r\n { keyword, index, view }\r\n) => {\r\n if (!getters.isComparisonContext) return;\r\n let context = getters[view];\r\n let hasMeasureData = context.isMeasuring && !!context.measureData;\r\n let measureIndex = hasMeasureData && context.measureData.index;\r\n if ((getters.isLocked || view === \"compare\") && getters.compare) \r\n dispatch(\"selectOCTImageByIndexForView\", { keyword, index, view: \"compare\" }).then(() => {\r\n if (hasMeasureData) commit(\"setMeasurementIndexCompare\", { x: measureIndex, view });\r\n });\r\n if ((getters.isLocked || view === \"baseline\") && getters.baseline)\r\n dispatch(\"selectOCTImageByIndexForView\", { keyword, index, view: \"baseline\" }).then(() => {\r\n if (hasMeasureData) commit(\"setMeasurementIndexCompare\", { x: measureIndex, view });\r\n });\r\n};\r\n\r\nexport const selectOCTImageByIndexForView = ({ dispatch, getters }, { keyword, view, index }) => {\r\n let context = getters[view];\r\n if (!context) return;\r\n let collection = getters.getSlices(\r\n keyword,\r\n context.exSrNo,\r\n context.groupName\r\n );\r\n let image = collection.find(v => v.index === index);\r\n if (!image) return;\r\n return dispatch(\"selectOCTImage\", { keyword, imgKey: image.imgKey, view });\r\n};\r\n\r\nexport const selectOCTImageByIndexProportionCompare = (\r\n { getters, dispatch, commit },\r\n { keyword, index, view }\r\n) => {\r\n if (!getters.isComparisonContext) return;\r\n let context = getters[view];\r\n let hasMeasureData = context.isMeasuring && !!context.measureData;\r\n let measureIndex = hasMeasureData && context.measureData.index;\r\n if (getters.isLocked && getters.compare && getters.baseline) {\r\n let selected, toChange, toChangeView;\r\n if (view === \"compare\") {\r\n selected = getters.compare_slices.length;\r\n toChange = getters.baseline_slices.length;\r\n toChangeView = \"baseline\";\r\n }\r\n else if (view === \"baseline\") {\r\n selected = getters.baseline_slices.length;\r\n toChange = getters.compare_slices.length;\r\n toChangeView = \"compare\";\r\n } \r\n\r\n dispatch(\"selectOCTImageByIndexForView\", { keyword, index, view }).then(() => {\r\n if (hasMeasureData) commit(\"setMeasurementIndexCompare\", { x: measureIndex, view });\r\n });\r\n\r\n let selectedProportion = index / selected;\r\n let toChangeProportion = parseInt(selectedProportion * toChange);\r\n dispatch(\"selectOCTImageByIndexForView\", { keyword, view: toChangeView, index: toChangeProportion }).then(() => {\r\n if (hasMeasureData) commit(\"setMeasurementIndexCompare\", { x: measureIndex, view });\r\n });\r\n }\r\n else {\r\n if ((view === \"compare\") && getters.compare)\r\n dispatch(\"selectOCTImageByIndexForView\", { keyword, index, view: \"compare\" }).then(() => {\r\n if (hasMeasureData) commit(\"setMeasurementIndexCompare\", { x: measureIndex, view });\r\n });\r\n if ((view === \"baseline\") && getters.baseline)\r\n dispatch(\"selectOCTImageByIndexForView\", { keyword, index, view: \"baseline\" }).then(() => {\r\n if (hasMeasureData) commit(\"setMeasurementIndexCompare\", { x: measureIndex, view });\r\n });\r\n }\r\n};\r\n\r\nexport const toggleColorCompare = ({ commit }, view) => {\r\n commit(\"toggleColorCompare\", view);\r\n};\r\nexport const toggleInvertedCompare = ({ commit }, view) => {\r\n commit(\"toggleInvertedCompare\", view);\r\n};\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #region hvf\r\nexport const selectHVFExam = ({ commit, getters }, { exSrNo, index }) => {\r\n if (!getters.imageBrowserContext) return;\r\n commit(\"selectHVFExam\", { exam: getters.examBySrNo(exSrNo), index });\r\n};\r\nexport const openHVFMultiview = ({ dispatch, getters }) => {\r\n if (!getters.exam) return;\r\n let context = new HvfMultiviewContext(getters.exam);\r\n return dispatch(\"setBrowserContext\", context);\r\n};\r\nexport const closeHVFMultiview = ({ dispatch, getters }) => {\r\n if (!getters.exSrNo || !getters.exam) return;\r\n let image = getters.imagesByExSrNo(getters.exSrNo)[0];\r\n if (!image) return;\r\n let context = new HvfContext(getters.exam, image);\r\n return dispatch(\"setBrowserContext\", context);\r\n};\r\n// #endregion\r\n\r\n// #region stereo browser\r\nexport const openStereo = ({ commit, getters }, images) => {\r\n if (!images || !images.length) {\r\n commit(\"displayStatus\", { message: \"Please select at least one image.\", level: \"error\" });\r\n return;\r\n }\r\n let exSrNo = images[0].exSrNo;\r\n let exImages = getters.imagesByExSrNo(exSrNo);\r\n if (images.some(i => i.exSrNo !== exSrNo)) {\r\n commit(\"displayStatus\", { message: \"Selected images must all be from a single exam.\", level: \"error\" });\r\n return;\r\n } else if (exImages.length <= 1) {\r\n commit(\"displayStatus\", { message: \"Selected exam must have at least two images.\", level: \"error\" });\r\n return;\r\n }\r\n\r\n let context = new StereoContext(images, exImages);\r\n commit(\"setStereoContext\", context);\r\n commit(\"addToBrowserStack\", context);\r\n\r\n context.refreshImages();\r\n};\r\nexport const closeStereo = ({ commit, dispatch }) => {\r\n commit(\"clearStereoContext\");\r\n dispatch(\"popBrowserStack\");\r\n};\r\nexport const setInitialStereoPair = ({ commit, getters }) => {\r\n let images = getters.selectedImages;\r\n if (images.length > 1)\r\n commit(\"setStereoPair\", {\r\n image1: images[0],\r\n image2: images[1],\r\n index: 0\r\n });\r\n};\r\nexport const changeSelectedStereoPair = ({ commit, getters }, button) => {\r\n let index = getters.stereoSelectedPair.index;\r\n if (button == \"Next\") {\r\n if (index < getters.stereoImagePairs.length - 1)\r\n commit(\"setStereoPair\", getters.stereoImagePairs[index + 1]);\r\n }\r\n else if (button == \"Previous\") {\r\n if (index > 0)\r\n commit(\"setStereoPair\", getters.stereoImagePairs[index - 1]);\r\n }\r\n else if (button == \"First\")\r\n commit(\"setStereoPair\", getters.stereoImagePairs[0]);\r\n else {\r\n commit(\"setStereoPair\", getters.stereoImagePairs[getters.stereoImagePairs.length - 1]);\r\n }\r\n};\r\nexport const swapSelectedStereoPair = ({ commit, getters }) => {\r\n commit(\"setStereoPair\", {\r\n image1: getters.stereoSelectedPair.image2,\r\n image2: getters.stereoSelectedPair.image1,\r\n index: getters.stereoSelectedPair.index\r\n });\r\n};\r\n// #endregion\r\n\r\n// #region sideBySide\r\nexport const openSideBySide = ({ commit, dispatch }, images) => {\r\n if (!images || !images.length || images.length !== 2) {\r\n commit(\"displayStatus\", { message: \"Please select exactly 2 images for side by side view.\", level: \"error\" });\r\n return;\r\n }\r\n\r\n let context = new SideBySideContext();\r\n commit(\"setSideBySideContext\", context);\r\n commit(\"addToBrowserStack\", context);\r\n\r\n Promise.all([\r\n dispatch(\"setSideBySideImageBrowserContext\", { isLeft: true, image: images[0] }),\r\n dispatch(\"setSideBySideImageBrowserContext\", { isLeft: false, image: images[1] })\r\n ]).then(() => dispatch(\"loadImagesForSideBySide\"));\r\n};\r\nexport const closeSideBySide = ({ commit, dispatch }) => {\r\n commit(\"clearSideBySideContext\");\r\n dispatch(\"popBrowserStack\");\r\n};\r\nexport const setSideBySideImageBrowserContext = ({ commit }, { isLeft, image }) => {\r\n commit(\"setSideBySideImageBrowser\", { isLeft, context: generateContextForImage(image.imgKey, true) });\r\n return Promise.resolve();\r\n};\r\nexport const sideBySideSelectExam = ({ dispatch, getters }, { exSrNo, isLeft }) => {\r\n let image = getters.imagesByExSrNo(exSrNo)[0];\r\n dispatch(\"setSideBySideImageBrowserContext\", { image, isLeft })\r\n .then(() => dispatch(\"loadImagesForSideBySide\")); \r\n};\r\nexport const sideBySideSelectImage = ({ commit }, { image, isLeft }) => {\r\n commit(\"setSideBySideImageBrowserContextImage\", { isLeft, image });\r\n};\r\n// #endregion\r\n\r\n// #region overlay browser\r\nexport const openOverlay = ({ commit, dispatch, getters }, sourceImages) => {\r\n sourceImages = sourceImages.slice().sort((a, b) => {\r\n if (a.exSrNo == b.exSrNo)\r\n return a.exIndex - b.exIndex;\r\n else\r\n return b.exDate - a.exDate;\r\n });\r\n if (sourceImages.length < 1)\r\n return dispatch(\"displayErrorAndReject\", \"You must select at least one image for Overlay.\");\r\n if (sourceImages.length > 1 && differentEyes(sourceImages))\r\n return dispatch(\"displayErrorAndReject\", \"You must select images from only one eye for Overlay.\");\r\n\r\n // if there's only one image, it doesn't need to be registered\r\n if (sourceImages.length === 1)\r\n return dispatch(\"loadRegisteredImages\", { sourceImages, registeredImages: sourceImages });\r\n\r\n // if we've already registered this set of images, use what we have\r\n let flSrNos = sourceImages.map(i => i.flSrNo).join(\"_\");\r\n let registeredImages = getters.i2kImagesByFlSrNos(flSrNos);\r\n if (registeredImages && registeredImages.length)\r\n return dispatch(\"loadRegisteredImages\", { sourceImages, registeredImages });\r\n\r\n commit(\"setLoadingMessage\", \"Registering images\");\r\n let exSrNos = sourceImages.map(i => i.exSrNo);\r\n let requestData = mapI2kRequests(sourceImages);\r\n return axios.post(\"/api/i2k/register\", {\r\n \"images\": requestData\r\n }).catch(() => dispatch(\"displayErrorAndReject\", \"An error occurred while registering images. Please try again later.\"))\r\n .then(response => {\r\n let registeredImages = response.data.map((path, index) => {\r\n return {\r\n path,\r\n imgKey: \"register_\" + flSrNos + \"_\" + index,\r\n flSrNos,\r\n exSrNos\r\n };\r\n });\r\n return dispatch(\"loadRegisteredImages\", { sourceImages, registeredImages });\r\n }).finally(() => commit(\"setLoadingMessage\", null));\r\n};\r\nfunction mapI2kRequests(images) {\r\n return images.map(i => {\r\n return {\r\n ptSrNo: i.ptSrNo,\r\n exSrNo: i.exSrNo,\r\n flSrNo: i.flSrNo,\r\n flName: i.flName,\r\n storeSrNo: i.storeSrNo\r\n };\r\n });\r\n}\r\nexport const displayErrorAndReject = ({ commit }, message) => {\r\n commit(\"displayStatus\", { message, level: \"error\" });\r\n return Promise.reject(message);\r\n};\r\nexport const cancelAddImagesToOverlay = ({ dispatch, getters }) => {\r\n return dispatch(\"openOverlay\", getters.previousOverlayImages);\r\n};\r\nexport const loadRegisteredImages = ({ commit, dispatch, getters }, { sourceImages, registeredImages }) => {\r\n // if no appropriate images are selected, complain\r\n if (!registeredImages || !registeredImages.length\r\n || registeredImages.some(i => (i.path || \"\").includes(\"ERROR\"))) {\r\n commit(\"displayStatus\", { message: \"i2k was unable to register the selected images.\", level: \"error\" });\r\n return Promise.reject(registeredImages || \"No images were registered\");\r\n }\r\n\r\n if (registeredImages.length !== 1){\r\n var flSrNoList = registeredImages[0].flSrNos.split(\"_\");\r\n for (var i = 0; i < registeredImages.length; i++) {\r\n var result = sourceImages.filter(obj => { return obj.flSrNo == flSrNoList[i]; })\r\n if (result.length > 0)\r\n registeredImages[i].exDateDisplay = result[0].exDateDisplay\r\n }\r\n }\r\n\r\n commit(\"setOriginalOverlaySettings\", { sourceImages });\r\n dispatch(\"loadOverlayImages\", registeredImages);\r\n\r\n commit(\"openOverlay\", registeredImages);\r\n commit(\"addToBrowserStack\", getters.overlayContext);\r\n};\r\nexport const loadOverlayImages = ({ dispatch, commit }, images) => {\r\n if (!images || !images.length) return;\r\n if (images.length === 1) {\r\n // if there's only one image, then it hasn't been registered and can be loaded with the normal load method\r\n dispatch(\"loadImage\", { image: images[0], thumb: false, proof: false, prefix: \"img\" });\r\n } else {\r\n // if there's more than one image, they have been registered and need to be loaded from the i2k endpoint\r\n commit(\"storeI2kImages\", images);\r\n images.forEach(image => dispatch(\"loadI2kImage\", image));\r\n }\r\n};\r\nexport const closeOverlay = ({ commit, dispatch }) => {\r\n commit(\"setOriginalOverlaySettings\", null);\r\n commit(\"clearOverlay\");\r\n dispatch(\"popBrowserStack\");\r\n};\r\nexport const closeOverlayToAddImages = ({ commit, dispatch }) => {\r\n commit(\"clearOverlay\");\r\n dispatch(\"popBrowserStack\");\r\n};\r\nfunction differentEyes(images) {\r\n if (!images || images.length < 2) return false;\r\n let eye = images[0].imgEye;\r\n return images.some(i => i.imgEye !== eye);\r\n}\r\n// #endregion\r\n\r\n// #region montage browser\r\nexport const openMontage = ({ commit, dispatch, getters }, images) => {\r\n images = images.slice().sort((a, b) => a.flSrNo - b.flSrNo);\r\n if (images.length < 2)\r\n return dispatch(\"displayErrorAndReject\", \"You must select at least two images for Montage.\");\r\n\r\n // if we've already generated a montage for this set of images, use what we have\r\n let latestImage = images.reduce(function (prev, current) {\r\n return (moment(prev.exDate).isAfter(current.exDate)) ? prev : current\r\n });\r\n let flSrNos = images.map(i => i.flSrNo);\r\n let imgKey = \"montage_\" + flSrNos.join(\"_\");\r\n let image = getters.i2kImageByKey(imgKey);\r\n let exam = getters.examBySrNo(images[0].exSrNo);\r\n let exSrNos = images.map(i => i.exSrNo);\r\n\r\n if (image) return dispatch(\"loadMontageImage\", { image, exam });\r\n\r\n commit(\"setLoadingMessage\", \"Generating montage\");\r\n let requestData = mapI2kRequests(images);\r\n return axios.post(\"/api/i2k/montage\", {\r\n \"images\": requestData\r\n }).catch(() => dispatch(\"displayErrorAndReject\", \"A montage could not be produced from the selected images\"))\r\n .then(response => dispatch(\"loadMontageImage\", {\r\n image: {\r\n path: response.data,\r\n imgKey,\r\n exSrNos,\r\n flSrNos,\r\n ptSrNo: latestImage.ptSrNo,\r\n exSrNo: latestImage.exSrNo,\r\n imgEye: latestImage.imgEye,\r\n imgIndex: latestImage.imgIndex,\r\n flSrNo: latestImage.flSrNo,\r\n flName: latestImage.flName,\r\n imgType: latestImage.imgType,\r\n imgGroup: latestImage.imgGroup,\r\n rcssrNo: latestImage.rcssrNo,\r\n rcimgIntrimPath: latestImage.rcimgIntrimPath\r\n }, exam\r\n }))\r\n .finally(() => commit(\"setLoadingMessage\", null));\r\n};\r\nexport const loadMontageImage = ({ commit, dispatch }, { image, exam }) => {\r\n if (!image.path\r\n || image.path === \"NO_IMAGES_ALIGNED\"\r\n || image.path.includes(\"ERRORGENRATINGMONTAGE\"))\r\n return dispatch(\"displayErrorAndReject\", \"A montage could not be produced from the selected images\");\r\n\r\n commit(\"storeI2kImages\", [image]);\r\n return dispatch(\"loadI2kImage\", image).then(() => {\r\n let context = new ImageContext(image, [image], exam);\r\n context.showMeasurementSection = context.showPlaybackToolbar = context.showImageDrawer = false;\r\n return dispatch(\"setBrowserContext\", context);\r\n }).catch(() => dispatch(\"displayErrorAndReject\", \"A montage could not be produced from the selected images\"));\r\n};\r\nexport const loadI2kImage = ({ dispatch }, image) => {\r\n let prefix = \"img\";\r\n let request = { path: image.path }, action = \"getI2kImage\", mutation = \"setI2kImageState\";\r\n return dispatch(\"doLoadImage\", { request, action, mutation, image, prefix });\r\n};\r\nexport const getI2kImage = (context, image) =>\r\n axios.get(\"/api/image/i2kImage\", { params: { path: image.path } })\r\n .catch(error => Promise.reject(error.response));\r\n// #endregion\r\n\r\n// #region print preview\r\nexport const openPrintPreview = ({ commit, dispatch, getters }, images) => {\r\n if (!images || !images.length) {\r\n commit(\"displayStatus\", { message: \"Please select at least one image to print.\", level: \"error\" });\r\n return;\r\n }\r\n if (getters.isOpenedInApp || window.isOpenedInApp) {\r\n let data = {\r\n access: getters.auth.access_token,\r\n images: images.map(i => i.flSrNo),\r\n ptSrNo: getters.ptSrNo,\r\n exSrNo: getters.exSrNo || images[0].exSrNo,\r\n ptId: getters.ptId,\r\n ptSex: getters.ptSex\r\n }\r\n requestPrintInApp(data);\r\n } else {\r\n let context = new PrintPreviewContext(images);\r\n commit(\"setPrintPreviewContext\", context);\r\n commit(\"addToBrowserStack\", context);\r\n dispatch(\"loadImages_full\", images);\r\n }\r\n};\r\n\r\nexport const closePrintPreview = ({ commit, dispatch }) => {\r\n commit(\"clearPrintPreviewContext\");\r\n dispatch(\"popBrowserStack\");\r\n};\r\n\r\n// #region app print\r\nexport const appPrintSetup = ({ commit, dispatch, getters }, query) => {\r\n let access = query.access;\r\n let imagesID = query.images.split(\",\");\r\n let exSrNo = [query.exSrNo];\r\n\r\n commit(\"setAxiosHeader\", access);\r\n\r\n let patientSearch = {\r\n timespan: PATIENT_TIMESPAN.all,\r\n searchBy: SEARCH_BY.EMRLink,\r\n keyword: \"\",\r\n sortBy: [\"ptId\"],\r\n sortDesc: [false],\r\n groupBy: [\"exDateIso\"],\r\n groupDesc: [true],\r\n Page: 1,\r\n ItemsPerPage: 1,\r\n AdvancedSearch: {\r\n ExSrNo: query.exSrNo,\r\n ExamTypes: [],\r\n PatientName: \"\",\r\n PatientId: query.ptId,\r\n PtSex: query.ptSex\r\n }\r\n };\r\n\r\n return axios.post(\"/api/patient/list\", patientSearch)\r\n .then(response => {\r\n if (response.data.patients.length > 0) {\r\n let value = response.data.patients[0];\r\n let patient = {\r\n ptId: value.ptID,\r\n ptSrNo: value.ptSrNo,\r\n exDate: value.exDate,\r\n exMoment: moment(value.exDate),\r\n exDateDisplay: formatDateDisplay(value.exDate),\r\n exDateIso: formatDateISO(value.exDate),\r\n lastName: value.nameLast,\r\n firstName: value.nameFirst,\r\n gender: value.gender,\r\n dob: formatDateDisplay(value.dob),\r\n isoDOB: formatDateISO(value.dob),\r\n status: value.ptValidityStatus + \"\",\r\n tableKey: value.ptSrNo + \"_\" + formatDateISO(value.exDate)\r\n };\r\n commit(\"selectPatient\", patient);\r\n\r\n return dispatch(\"getPatientExams\");\r\n } else {\r\n commit(\"displayStatus\", { message: \"Patient not found\", level: \"error\" });\r\n }\r\n })\r\n .then(() => {\r\n return dispatch(\"loadExamImageMetadata\", exSrNo);\r\n })\r\n .then(() => {\r\n let images = [];\r\n\r\n imagesID.forEach(value => {\r\n let image = getters.imageByKey(value);\r\n images.push(image);\r\n });\r\n\r\n return dispatch(\"openPrintPreview\", images);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n}\r\n// #endregion\r\n// #endregion\r\n\r\n// #region browser stack\r\nexport const popBrowserStack = ({ commit, dispatch, getters }) => {\r\n logDetailed(\"actions\", \"popBrowserStack\");\r\n commit(\"popBrowserStack\");\r\n if (getters.browserStack.length) {\r\n // if a browser is open, refresh the top browser\r\n dispatch(\"refreshTopBrowser\");\r\n } else {\r\n // if no browser is open, refresh the patients list\r\n logDetailed(\"actions\", \"popBrowserStack\", \"all browsers closed - refreshing patient list\");\r\n // refresh the patients list but not entire exam list\r\n dispatch(\"getPatients\", true);\r\n }\r\n};\r\nexport const refreshTopBrowser = ({ dispatch, getters }) => {\r\n let browser = getters.topBrowser;\r\n if (browser && browser.refreshImages) browser.refreshImages();\r\n else dispatch(\"getThumbnailsForOpenExams\");\r\n};\r\nexport const setOpenedExams = ({ commit, dispatch }, exams) => {\r\n commit(\"setOpenedExams\", exams);\r\n dispatch(\"getThumbnailsForOpenExams\");\r\n};\r\n// #endregion\r\n\r\n// #region video viewer \r\nexport const openVideoViewer = ({ commit }, video) => {\r\n commit(\"openVideoViewer\", video);\r\n};\r\n// #endregion\r\n\r\n// #region admin reports\r\nexport const getChartResult = (context, chartCriteria) => {\r\n return axios.post(\"/api/report/chartResult\", chartCriteria)\r\n .then(response => {\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n}\r\n\r\nexport const submitExamSummaryReport = (context, examSummaryCriteria) => {\r\n let request = {\r\n searchBy: SEARCH_BY.Advanced,\r\n dateStart: examSummaryCriteria.dateFrom ? moment(examSummaryCriteria.dateFrom + \"T00:00:00\") : null,\r\n dateEnd: examSummaryCriteria.dateTo ? moment(examSummaryCriteria.dateTo + \"T00:00:00\") : null,\r\n advancedSearch: {\r\n ReportTechingCase: JSON.parse(examSummaryCriteria.teaching),\r\n ReportDictatedCase: JSON.parse(examSummaryCriteria.dictated),\r\n ExamTypes: examSummaryCriteria.device,\r\n ExamPhysicians: examSummaryCriteria.physician,\r\n ExamPathology: examSummaryCriteria.examPathology,\r\n ReportGroupBy: examSummaryCriteria.reportGroupBy,\r\n DevLocation: examSummaryCriteria.devLocations,\r\n DevType: examSummaryCriteria.devTypes\r\n },\r\n page: examSummaryCriteria.pageNumber,\r\n itemsPerPage: examSummaryCriteria.rowPerPage\r\n }\r\n return axios.post(\"/api/report/examSummary\", request)\r\n .then(response => {\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n}\r\n\r\nexport const submitUserActivityReport = (context, userActivityCriteria) => {\r\n let request = {\r\n UserSrNo: userActivityCriteria.usrSrNo,\r\n DateFrom: userActivityCriteria.dateFrom ? moment(userActivityCriteria.dateFrom + \"T00:00:00\") : null,\r\n DateTo: userActivityCriteria.dateTo ? moment(userActivityCriteria.dateTo + \"T00:00:00\") : null,\r\n Activity: userActivityCriteria.userActivities,\r\n PageNumber: userActivityCriteria.pageNumber,\r\n RowsOfPage: userActivityCriteria.rowPerPage\r\n }\r\n return axios.post(\"/api/report/userActivity\", request)\r\n .then(response => {\r\n response.data.data.list.forEach(item => {\r\n item.hplTmStamp = moment(item.hplTmStamp).utc().format(\"YYYY-MM-DD HH:mm:ss\") + \" UTC\";\r\n item.patientID = item.patientID == 0 ? \"\" : item.patientID;\r\n item.examID = item.examID == 0 ? \"\" : item.examID;\r\n });\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n}\r\n\r\nexport const submitDeviceHistory = ( {getters}, deviceHistoryCriteria) => {\r\n let request = {\r\n Users: deviceHistoryCriteria.users,\r\n DateFrom: deviceHistoryCriteria.dateFrom ? moment(deviceHistoryCriteria.dateFrom + \"T00:00:00\") : null,\r\n DateTo: deviceHistoryCriteria.dateTo ? moment(deviceHistoryCriteria.dateTo + \"T00:00:00\") : null,\r\n Devices: deviceHistoryCriteria.devices,\r\n PageNumber: deviceHistoryCriteria.pageNumber,\r\n RowsOfPage: deviceHistoryCriteria.rowPerPage\r\n };\r\n return axios.post(\"/api/report/deviceHistory\", request)\r\n .then(response => {\r\n response.data.data.list.forEach(item => {\r\n item.tmStamp = moment(item.tmStamp).utc().format(\"YYYY-MM-DD HH:mm:ss\") + \" UTC\";\r\n item.changes = [];\r\n if (item.oldValues == \"\") \r\n {\r\n let firstObject = {\r\n devProc: item.devProc,\r\n tmStamp: item.tmStamp, \r\n username: getters.userList.filter(a => a.srNo == item.userSrNo)[0].name,\r\n field: \"All\",\r\n oldValues: \"-\",\r\n newValues: item.newValues,\r\n };\r\n item.changes.push(firstObject);\r\n }\r\n else {\r\n let oldJson = JSON.parse(item.oldValues);\r\n let newJson = JSON.parse(item.newValues);\r\n for (let key in oldJson) {\r\n if (DEVICE_HISTORY_EDITABLE_FIELDS.includes(key.toLowerCase())) \r\n {\r\n if (oldJson[key] != newJson[key]) \r\n {\r\n let diffObject = {\r\n devProc: item.devProc,\r\n tmStamp: item.tmStamp, \r\n username: getters.userList.filter(a => a.srNo == item.userSrNo)[0].name,\r\n field: key,\r\n oldValues: oldJson[key],\r\n newValues: newJson[key],\r\n };\r\n item.changes.push(diffObject);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return Promise.resolve(response);\r\n })\r\n .catch(error => Promise.reject(error.response));\r\n}\r\n// #endregion\r\n","import axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport store from \"../../store\";\r\nimport { logDetailed } from \"../../helpers/utils\";\r\nimport { formatDateDisplay, formatDateISO } from \"../../helpers/dateUtils\";\r\nimport { iPadBrowser } from \"../../helpers/browserDetect\";\r\n\r\nexport const submitQuickSearch = ({ commit, dispatch }, text) => {\r\n logDetailed(\"actions\", \"submitQuickSearch\", text);\r\n commit(\"quickSearch\", text);\r\n commit(\"clearSelectedPatient\");\r\n return dispatch(\"getPatients\");\r\n};\r\n\r\nexport const submitAdvancedSearch = ({ commit, dispatch }, search) => {\r\n logDetailed(\"actions\", \"submitAdvancedSearch\", search);\r\n commit(\"advancedSearch\", search);\r\n commit(\"clearSelectedPatient\");\r\n return dispatch(\"getPatients\");\r\n};\r\n\r\nexport const submitTimespanSearch = ({ commit, dispatch }, timespan) => {\r\n logDetailed(\"actions\", \"submitTimespanSearch\", timespan);\r\n commit(\"setSearchTimespan\", timespan);\r\n commit(\"clearSelectedPatient\");\r\n return dispatch(\"getPatients\");\r\n}\r\n\r\nexport const getPatients = ({ getters, commit, dispatch }, autoRefresh = false) => {\r\n if (getters.ssoEmrPro)\r\n commit(\"ssoSearch\", getters.emrProSearchParams);\r\n let search = { ...getters.patientSearch, ...getters.patientSearchOptions };\r\n logDetailed(\"actions\", \"getPatients\", \"autoRefresh\", autoRefresh, \"getters.ssoEmrPro\", getters.ssoEmrPro, \"getters.emrProSearchParams\", getters.emrProSearchParams, \"getters.ssoSearch\", getters.ssoSearch, \"search\", search);\r\n let selectedExams = getters.selectedExams;\r\n let oldPatient = getters.patient;\r\n let ssoExSrNo = getters.ssoExSrNo;\r\n commit(\"setPatients\", []);\r\n commit(\"startLoadingPatients\");\r\n let promise = axios\r\n .post(\"/api/patient/list\", search)\r\n .then(response => {\r\n commit(\"setPatients\", response.data.patients.map(value => {\r\n return {\r\n ptId: value.ptID,\r\n ptSrNo: value.ptSrNo,\r\n exDate: value.exDate,\r\n exMoment: moment(value.exDate),\r\n exDateDisplay: formatDateDisplay(value.exDate),\r\n exDateIso: formatDateISO(value.exDate),\r\n lastName: decodeURIComponent(value.nameLast),\r\n firstName: decodeURIComponent(value.nameFirst),\r\n gender: value.gender,\r\n dob: formatDateDisplay(value.dob),\r\n isoDOB: formatDateISO(value.dob),\r\n status: value.ptValidityStatus + \"\",\r\n tableKey: value.ptSrNo + \"_\" + formatDateISO(value.exDate)\r\n };\r\n }));\r\n commit(\"setTotalPatients\", response.data.totalPatients);\r\n if (oldPatient) {\r\n if (getters.autoRefreshPatientList == 1 && !!autoRefresh)\r\n commit(\"selectPatient\", oldPatient);\r\n else\r\n dispatch(\"selectPatient\", oldPatient).then(() => commit(\"selectExams\", selectedExams));\r\n } else if (allSamePatient(getters.patients)) {\r\n dispatch(\"selectPatient\", getters.patients[0]).then(() =>{\r\n if(ssoExSrNo){\r\n let selectedSSOExam = getters.examBySrNo(parseInt(ssoExSrNo));\r\n commit(\"selectExams\", [selectedSSOExam]); \r\n if(getters.exams.length > 0) \r\n dispatch(\"openProofsheetFromExamList\");\r\n else\r\n commit(\"displayStatus\", { message: \"Exam not found\", level: \"error\" });\r\n }\r\n });\r\n } else {\r\n commit(\"clearSelectedPatient\");\r\n }\r\n if (getters.ssoSearch && getters.patients.length == 0)\r\n commit(\"displayStatus\", { message: \"Patient not found.\", level: \"error\" });\r\n if (getters.ssoSearch)\r\n commit(\"clearSSOSearch\");\r\n })\r\n .catch(error =>{ \r\n commit(\"displayStatus\", { message: \"The patient exam data is not found.\", level: \"error\" });\r\n Promise.reject(error.response);\r\n });\r\n promise.finally(() => commit(\"stopLoadingPatients\"));\r\n return promise;\r\n};\r\n\r\nfunction allSamePatient(patients) {\r\n if (!patients || !patients.length) return false;\r\n if (patients.length === 1) return true;\r\n let ptSrNo = patients[0].ptSrNo;\r\n return patients.every(p => p.ptSrNo === ptSrNo);\r\n}\r\n\r\nexport const selectPatient = ({ commit, dispatch, getters }, patient) => {\r\n \r\n commit(\"selectExams\", []);\r\n commit(\"selectPatient\", patient);\r\n if (getters.emrProExSrNo){\r\n return dispatch(\"getPatientExamSSO\");\r\n }\r\n return dispatch(\"getPatientExams\");\r\n};\r\n\r\nexport const getPatientExams = ({ dispatch, getters }) => {\r\n let url = \"/api/exam/list/\" + getters.ptSrNo;\r\n return dispatch(\"loadExams\", url);\r\n};\r\n\r\nexport const getPatientExamSSO = ({ dispatch, getters }) => {\r\n let url = \"/api/exam/\" + getters.emrProExSrNo;\r\n return dispatch(\"loadExams\", url);\r\n};\r\n\r\nexport const loadExams = ({ commit, dispatch }, url) => {\r\n logDetailed(\"getPatientExamActions\", \"loadExams\", \"execution-time\", url, \"beforeLoad\");\r\n let beforeLoad = Date.now();\r\n commit(\"setExams\", []);\r\n commit(\"startLoadingExams\");\r\n\r\n let apiCall = axios.post(url);\r\n apiCall.finally(() => {\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"getPatientExamActions\", \"loadExams\", \"execution-time\", url, \"api call\", elapsed);\r\n });\r\n\r\n let apiThenProcessExams = apiCall.then(response => dispatch(\"processExams\", response.data))\r\n apiThenProcessExams.finally(() => {\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"getPatientExamActions\", \"loadExams\", \"execution-time\", url, \"api call + process exams\", elapsed);\r\n });\r\n\r\n let promise = apiThenProcessExams\r\n .then(() => dispatch(\"getOCTExamInfo\"))\r\n .catch(error => Promise.reject(error.response));\r\n promise.finally(() => {\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"getPatientExamActions\", \"loadExams\", \"execution-time\", url, \"whole procedure\", elapsed);\r\n commit(\"stopLoadingExams\")\r\n });\r\n return promise;\r\n};\r\n\r\nfunction getPhysicianName(phySrNo) {\r\n if (store.getters.physicians.length > 0) \r\n {\r\n let physician = store.getters.physicians.find(\r\n obj => obj.phySrNo == phySrNo\r\n );\r\n return physician.firstName + \" \" + physician.lastName;\r\n }\r\n return \"\"\r\n}\r\n\r\nfunction generatePhysicianNameArray(array) {\r\n var container = [];\r\n array.forEach(value => {\r\n container.push(getPhysicianName(value));\r\n });\r\n container.sort(function (a, b) {\r\n return a.toLowerCase().localeCompare(b.toLowerCase());\r\n });\r\n return container;\r\n}\r\n\r\nfunction setFirstMD(exam) {\r\n var firstMD = \"\";\r\n if (exam.exAttdMD !== undefined && exam.exAttdMD.length !== 0) {\r\n exam.exAttdMD.forEach(value => {\r\n value = getPhysicianName(value);\r\n if (firstMD == \"\")\r\n firstMD = value;\r\n else if (firstMD > value)\r\n firstMD = value;\r\n });\r\n }\r\n else if (exam.exRefMD !== undefined && exam.exRefMD.length !== 0) {\r\n exam.exRefMD.forEach(value => {\r\n value = getPhysicianName(value);\r\n if (firstMD == \"\")\r\n firstMD = value;\r\n else if (firstMD > value)\r\n firstMD = value;\r\n });\r\n }\r\n return firstMD;\r\n}\r\n\r\nexport const processExams = ({ commit, getters }, response) => {\r\n if (!response.success) {\r\n commit(\"displayStatus\", { message: \"Something went wrong while loading exams\", level: \"error\" });\r\n return;\r\n }\r\n let beforeLoad = Date.now();\r\n let exams = response.data;\r\n let ssoDevice = (getters.ssoExType || \"\").toLowerCase();\r\n if (ssoDevice)\r\n exams = exams.filter(exam => exam.exDevice.toLowerCase().includes(ssoDevice));\r\n\r\n let ssoDate = getters.ssoExDate ? formatDateISO(getters.ssoExDate) : \"\";\r\n if (ssoDate)\r\n exams = exams.filter(exam => formatDateISO(exam.exDate) === ssoDate);\r\n let ptSrNo = exams && exams.length && exams[0] && exams[0].ptSrNo;\r\n logDetailed(\"getPatientExamActions\", \"processExams\", \"execution-time\", ptSrNo, \"beforeLoad\");\r\n\r\n let devices = getters.devices;\r\n commit(\"clearImageOrder\");\r\n exams.forEach(exam => {\r\n exam.moment = moment(exam.exDate);\r\n exam.dateDisplay = formatDateDisplay(exam.exDate);\r\n exam.dateIso = formatDateISO(exam.exDate);\r\n exam.listText = `${exam.dateDisplay} : ${exam.exDevice} [${exam.exSrNo}]`;\r\n exam.odGroups = [];\r\n exam.osGroups = [];\r\n exam.browserType = \"\";\r\n exam.octDateButtonText = \"\";\r\n exam.selectAllImages = false;\r\n exam.loadedImageMetadata = false;\r\n exam.devSrNo = exam.exDevType;\r\n\r\n let device = devices.find(d => d.devSrNo == exam.devSrNo);\r\n if (device) {\r\n exam.devSrNo = device.devSrNo;\r\n exam.manufacturer = device.manufacturer;\r\n exam.isOptos = device.isOptos;\r\n exam.isOCT = device.isOCT;\r\n exam.isScans = device.isScans;\r\n exam.orderByLaterality = device.orderByLaterality;\r\n }\r\n exam.exAttdMDHtml = generatePhysicianNameArray(exam.exAttdMD);\r\n exam.exRefMDHtml = generatePhysicianNameArray(exam.exRefMD);\r\n exam.firstMD = setFirstMD(exam);\r\n });\r\n commit(\"setExams\", exams);\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"getPatientExamActions\", \"processExams\", \"execution-time\", ptSrNo, \"whole procedure\", elapsed);\r\n};\r\n\r\nexport const getOCTExamInfo = ({ commit, getters }) =>\r\n axios\r\n .post(\"/api/octexaminfo/\", getters.exams.map(e => e.exSrNo))\r\n .then(data => commit(\"updateOCTExamInfo\", data.data));\r\n\r\nexport const loadExamImageMetadata = ({ commit, dispatch, getters }, { exSrNos, forceLoad }) => {\r\n logDetailed(\"getPatientExamActions\", \"loadExamImageMetadata\", \"execution-time\", \"beforeLoad\");\r\n let beforeLoad = Date.now();\r\n if (!exSrNos) {\r\n let exams = getters.selectedExams;\r\n if (!exams || !exams.length) exams = getters.exams;\r\n\r\n exSrNos = exams\r\n .filter(e => forceLoad || e.loadedImageMetadata == false)\r\n .map(e => e.exSrNo);\r\n } else {\r\n exSrNos = exSrNos.filter(exSrNo => forceLoad || !getters.examBySrNo(exSrNo).loadedImageMetadata);\r\n }\r\n\r\n if (!exSrNos || !exSrNos.length) \r\n return;\r\n \r\n let promise = axios.post(\"api/exam/images\", exSrNos)\r\n .then(response => {\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"getPatientExamActions\", \"loadExamImageMetadata\", \"execution-time\", \"api call\", elapsed);\r\n // build exImgDataRes groupings\r\n let items = [];\r\n for (let i = 0; i < response.data.length; ++i) {\r\n let result = response.data[i];\r\n var match = items.filter(e => e.exSrNo == result.exSrNo);\r\n if (match && match[0]) {\r\n match[0].imgData.push(result);\r\n } else {\r\n items.push({ exSrNo: result.exSrNo, imgData: [result] });\r\n }\r\n }\r\n\r\n for (let item of items)\r\n dispatch(\"processExamImages\", item);\r\n }).catch(error => Promise.reject(error.response));\r\n\r\n promise.finally(() => {\r\n let elapsed = Date.now() - beforeLoad;\r\n if (iPadBrowser)\r\n commit(\"finishedLoadingAppPrintImages\");\r\n logDetailed(\"getPatientExamActions\", \"loadExamImageMetadata\", \"execution-time\", \"whole procedure\", elapsed);\r\n })\r\n\r\n return promise;\r\n}\r\n\r\nexport const processExamImages = ({ commit, getters }, { exSrNo, exam, imgData }) => {\r\n if (!exam)\r\n exam = getters.examBySrNo(exSrNo);\r\n if (!exSrNo)\r\n exSrNo = exam.exSrNo;\r\n\r\n logDetailed(\"getPatientExamActions\", \"processExamImages\", \"execution-time\", exam.ptSrNo, exam.exSrNo, \"beforeLoad\");\r\n let beforeLoad = Date.now();\r\n\r\n if(exam.orderByLaterality){\r\n imgData.sort((a, b) => a.imgEye.localeCompare(b.imgEye));\r\n }\r\n \r\n let data = {\r\n exImgDataRes: {\r\n exSrNo: exSrNo,\r\n exImgData: imgData\r\n },\r\n exDevice: exam.exDevice,\r\n exDate: exam.exDate,\r\n dateDisplay: exam.dateDisplay,\r\n moment: exam.moment\r\n };\r\n commit(\"storeImages\", data);\r\n commit(\"setExamImageMetadataLoaded\", exSrNo);\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"getPatientExamActions\", \"processExamImages\", \"execution-time\", exam.ptSrNo, exam.exSrNo, \"whole procedure\", elapsed);\r\n}\r\n\r\nexport const loadImageMetadataForAllExams = ({ commit, dispatch }, forceLoad) => {\r\n commit(\"setLoadingMessage\", \"Loading exam image records\");\r\n logDetailed(\"getPatientExamActions\", \"loadImageMetadataForAllExams\", \"execution-time\", \"beforeLoad\");\r\n let beforeLoad = Date.now();\r\n return dispatch(\"loadExamImageMetadata\", {forceLoad})\r\n .finally(() => {\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"getPatientExamActions\", \"loadImageMetadataForAllExams\", \"execution-time\", \"whole procedure\", elapsed);\r\n commit(\"setLoadingMessage\", null)\r\n });\r\n}\r\n\r\nexport const getEMRStat = (context, payload) => {\r\n logDetailed(\"actions\", \"getEMRStat\", payload);\r\n if(!payload.emrpro) return Promise.reject();\r\n let promise = axios.post(\"/api/exam/getemrstat\", payload)\r\n .then(response =>{\r\n if (!response.data) return Promise.reject();\r\n return Promise.resolve(response);\r\n });\r\n return promise;\r\n}","import axios from \"axios\";\r\nimport { logDetailed } from \"../../helpers/utils\";\r\nimport { openPopup } from \"../../helpers/popup\";\r\n\r\nexport const launchPDF = ({ getters }, fileName) => {\r\n logDetailed(\"actions\", \"launchPDF for \" + fileName, getters.isOpenedInApp);\r\n return axios.get(\"/api/helpcenter/launchPDF/?fileName=\" + fileName, {responseType: \"arraybuffer\"})\r\n .then(response => {\r\n var file = new Blob([response.data], {type: \"application/pdf\"});\r\n var fileURL = URL.createObjectURL(file);\r\n if (getters.isOpenedInApp)\r\n window.location.href = fileURL;\r\n else\r\n openPopup(fileURL);\r\n }); \r\n} \r\n\r\nexport const openHelpDialog = ({ dispatch, commit }) => {\r\n dispatch(\"getKnowledgeCenterSettings\");\r\n dispatch(\"getVideoLibrary\");\r\n dispatch(\"getBestPracticesEntries\");\r\n commit(\"openHelpDialog\");\r\n}\r\n\r\nexport const getKnowledgeCenterSettings = ({ commit, getters }) => {\r\n logDetailed(\"actions\", \"knowledgeCenterSettings\", getters.isOpenedInApp);\r\n return axios.get(\"/api/helpcenter/knowledgeCenterSettings\")\r\n .then(response => {\r\n commit(\"setKnowledgeCenterSettings\", response.data);\r\n return Promise.resolve(response);\r\n }); \r\n} \r\n\r\nexport const getVideoLibrary = ({ commit, getters }) => {\r\n logDetailed(\"actions\", \"videoLibrary\", getters.isOpenedInApp);\r\n return axios.get(\"/api/helpcenter/videoLibrary\")\r\n .then(response => {\r\n var parsedJson = JSON.parse(response.data);\r\n commit(\"setVideoLibrary\", parsedJson);\r\n return Promise.resolve(response);\r\n }); \r\n}\r\n\r\nexport const launchVideo = ({ commit, getters }, id) => {\r\n logDetailed(\"actions\", \"launchVideo\", getters.isOpenedInApp);\r\n commit(\"setKnowledgeCenterVideoSrc\", \"api/helpcenter/launchVideo/?Id=\" + id);\r\n commit(\"openVideoViewer\", {isKnowledgeCenterVideo: true});\r\n} \r\n\r\nexport const getBestPracticesEntries = ({ commit, getters }) => {\r\n logDetailed(\"actions\", \"bestPracticesEntries\", getters.isOpenedInApp);\r\n return axios.get(\"/api/helpcenter/bestPractices\")\r\n .then(response => {\r\n var parsedJson = JSON.parse(response.data);\r\n commit(\"setBestPracticesEntries\", parsedJson);\r\n return Promise.resolve(response);\r\n }); \r\n} ","import axios from \"axios\";\r\nimport { setSize, defaultSize } from \"../../canvas/geometry\";\r\nimport { generateBlobFromBase64, loadImageFromBlob } from \"../../canvas/canvasUtils\";\r\nimport { imageAlreadyLoaded } from \"./helpers\";\r\nimport { PRELOAD_OPTIONS } from \"../../config/config\";\r\n\r\nexport const getThumbnailsForOpenExams = ({ dispatch, getters }) =>\r\n dispatch(\"loadImages_thumb\", getters.imagesForOpenExams);\r\n\r\nexport const loadImagesForSideBySide = ({ dispatch, getters }) => {\r\n let leftImages = getters.imagesByExSrNo(getters.sideBySideLeftExSrNo);\r\n let rightImages = getters.imagesByExSrNo(getters.sideBySideRightExSrNo);\r\n let images = [...leftImages, ...rightImages];\r\n let preLoadOption = getters.preLoadOption;\r\n\r\n if(preLoadOption == PRELOAD_OPTIONS.preLoad2Steps){\r\n let context = getters.sideBySideContext;\r\n let mainImages = [];\r\n mainImages.push(context.leftContext.image);\r\n mainImages.push(context.rightContext.image);\r\n return dispatch(\"loadImages_thumb\", images)// load thumb for side panels if not loaded previously\r\n .then(() => dispatch(\"preLoad_2Steps\", { images, mainImages})); \r\n }\r\n else if(preLoadOption == PRELOAD_OPTIONS.preLoadAll){\r\n return dispatch(\"loadImages_thumb\", images)// load thumb for side panels if not loaded previously\r\n .then(() => dispatch(\"preload_all\", images)); \r\n }\r\n else{ // PreLoadNone\r\n return dispatch(\"loadImages_full_thumb\", images); \r\n } \r\n};\r\n\r\nexport const preload_all = ({ dispatch, commit }, images) => {\r\n commit(\"setLoadingMessage\", \"Loading Image\");\r\n \r\n return dispatch(\"loadImages_full\", images).finally(() => {\r\n commit(\"setLoadingMessage\", null);\r\n });\r\n}\r\n\r\nexport const preLoad_2Steps = ({ dispatch, commit }, {images, mainImages}) => {\r\n commit(\"setLoadingMessage\", \"Loading Image\");\r\n\r\n return dispatch(\"loadImages_full\", mainImages).finally(() => {\r\n commit(\"setLoadingMessage\", null);\r\n dispatch(\"loadImages_full\", images);\r\n });\r\n}\r\n\r\nexport const loadImages_full_thumb = ({ dispatch }, images) =>\r\n dispatch(\"loadImageSet\", { images, thumb: true, full: true });\r\n\r\nexport const loadImages_full = ({ dispatch }, images) =>\r\n dispatch(\"loadImageSet\", { images });\r\n\r\nexport const loadImages_thumb = ({ dispatch }, images) =>\r\n dispatch(\"loadImageSet\", { images, thumb: true, full: false });\r\n\r\nexport const loadImages_proof = ({ dispatch }, images) =>\r\n dispatch(\"loadImageSet\", { images, proof: true, full: false });\r\n\r\nexport const loadImageSet = ({ commit, dispatch }, { images, queueKey = \"imageQueue\", thumb = false, proof = false, full = true }) => {\r\n commit(\"purgeOldImages\", images);\r\n commit(\"clearImageQueue\", queueKey);\r\n let queue = constructImageQueue(images, thumb, proof, full);\r\n commit(\"setImageQueue\", { queue, queueKey });\r\n return dispatch(\"loadQueue\", queueKey);\r\n};\r\n\r\nfunction constructImageQueue(images, thumb, proof, full) {\r\n let line = { next: 0, queue: [], concurrent: 5, cancelled: false, action: \"loadImage\" };\r\n images.forEach(image => {\r\n addQueueRecord(line.queue, image, \"img\", full);\r\n addQueueRecord(line.queue, image, \"thumb\", thumb);\r\n addQueueRecord(line.queue, image, \"proof\", proof);\r\n });\r\n return line;\r\n}\r\n\r\nfunction addQueueRecord(queue, image, key, doAdd) {\r\n if (doAdd && !imageAlreadyLoaded(image, key))\r\n queue.push({ image, thumb: key == \"thumb\", proof: key === \"proof\", prefix: key });\r\n}\r\n\r\nexport const loadQueue = ({ dispatch, getters }, queueKey) => {\r\n let line = getters[queueKey];\r\n if (!line || line.cancelled || !line.queue || !line.queue.length) return Promise.resolve();\r\n // to prevent crashes from loading too many images at once, load in batches\r\n let max = Math.min(15, line.concurrent, line.queue.length);\r\n let promises = [];\r\n for (let i = 0; i < max; i++) promises.push(dispatch(\"loadQueueInstance\", queueKey));\r\n return Promise.all(promises);\r\n};\r\n\r\nexport const loadQueueInstance = ({ dispatch, getters }, queueKey) => {\r\n let line = getters[queueKey];\r\n if (!line || line.cancelled || !line.queue || !line.queue.length) return Promise.resolve();\r\n let item = line.queue[line.next++];\r\n if (!item) return;\r\n return dispatch(line.action, item)\r\n // when the image is loaded, try to grab the next image in the queue\r\n .finally(() => dispatch(\"loadQueueInstance\", queueKey));\r\n};\r\n\r\nexport const loadImage = ({ dispatch }, { image, thumb, proof, prefix }) => {\r\n let request = { ...image, thumb, proof }, action = \"getAxisImage\", mutation = \"setImageState\";\r\n return dispatch(\"doLoadImage\", { request, action, mutation, image, prefix });\r\n};\r\n\r\nexport const doLoadImage = ({ commit, dispatch }, { image, request, action, mutation, prefix }) => {\r\n // if image was already loaded, don't load it again\r\n if (imageAlreadyLoaded(image, prefix)) return Promise.resolve();\r\n let isLoadingKey = prefix + \"IsLoading\",\r\n notFoundKey = prefix + \"NotFound\";\r\n\r\n let imageState = { [isLoadingKey]: true, [prefix + \"IsQueued\"]: false, imgKey: image.imgKey };\r\n commit(mutation, imageState);\r\n return dispatch(action, request)\r\n .then(response => loadImageFromString(response.data))\r\n .then(data => {\r\n imageState[prefix + \"HtmlObject\"] = data.img;\r\n imageState[prefix + \"ObjectUrl\"] = data.url;\r\n imageState[prefix + \"Size\"] = defaultSize();\r\n setSize(imageState[prefix + \"Size\"], data.img);\r\n }).catch(() => {\r\n imageState[notFoundKey] = true;\r\n }).finally(() => {\r\n imageState[isLoadingKey] = false;\r\n commit(mutation, imageState);\r\n\r\n if (image.imageType === \"newApiColorMap\")\r\n commit(\"loadThicknessMap\", image.imgKey);\r\n });\r\n};\r\n\r\nexport const getAxisImage = (context, image) =>\r\n axios.get(\"/api/image/axisImage\", {\r\n params: {\r\n thumb: image.thumb,\r\n proof: image.proof,\r\n ptSrNo: image.ptSrNo,\r\n exSrNo: image.exSrNo,\r\n flSrNo: image.flSrNo,\r\n flName: image.flName,\r\n imgType: image.imgType,\r\n imgSubType: image.imgSubType,\r\n storeSrNo: image.storeSrNo\r\n }\r\n }).catch(error => Promise.reject(error.response));\r\n\r\nfunction loadImageFromString(data) {\r\n if (!data) return Promise.reject();\r\n let blob = generateBlobFromBase64(data);\r\n return loadImageFromBlob(blob)\r\n .then(({ img, url }) => Promise.resolve({\r\n img,\r\n url,\r\n src: \"data:image/jpeg;base64,\" + data\r\n }));\r\n}","import store from \"../store\";\r\nexport default class PatientExamMultiviewContext {\r\n constructor(exams, images) {\r\n this.exams = [...exams];\r\n this.filteredExams = [...exams];\r\n this.currentExams = [];\r\n this.selectedExams = [];\r\n\r\n this.images = [...images];\r\n this.filteredImages = [...images];\r\n this.currentImages = [];\r\n this.selectedImages = [];\r\n\r\n this.currentEye = \"\";\r\n\r\n this.deviceList = [];\r\n this.deviceFilter = [];\r\n\r\n this.dateList = [];\r\n this.dateFilter = [];\r\n\r\n this.isCollapsed = store.getters.multiviewCollapseUserPref != null ? store.getters.multiviewCollapseUserPref == 1 : (store.getters.multiviewCollapseByDefault != null ? store.getters.multiviewCollapseByDefault : false);\r\n }\r\n\r\n refreshImages() {\r\n return store.dispatch(\"refreshMultiview\");\r\n }\r\n\r\n constructFilters() {\r\n this.deviceList = this.exams.map(e => e.exDevice)\r\n // get unique devices\r\n .filter((d, i, self) => self.indexOf(d) === i)\r\n .sort();\r\n this.deviceFilter = this.deviceList.slice();\r\n\r\n this.dateList = this.exams.slice()\r\n .sort((a, b) => a.moment.diff(b.moment))\r\n .map(exam => exam.dateDisplay).reverse();\r\n this.dateFilter = this.dateList.slice();\r\n }\r\n\r\n reconstructFilters() {\r\n let newDeviceList = this.exams.map(e => e.exDevice)\r\n // get unique devices\r\n .filter((d, i, self) => self.indexOf(d) === i)\r\n .sort();\r\n if (newDeviceList.join(\",\") !== this.deviceList.join(\",\"))\r\n this.deviceFilter = newDeviceList.slice();\r\n\r\n let newDateList = this.exams.slice()\r\n .sort((a, b) => a.moment.diff(b.moment))\r\n .map(exam => exam.dateDisplay).reverse();\r\n if (newDateList.join(\",\") !== this.dateList.join(\",\"))\r\n this.dateFilter = this.dateList.slice();\r\n }\r\n\r\n selectEye(eye) {\r\n if (eye === this.currentEye) this.currentEye = \"\";\r\n else this.currentEye = eye;\r\n this.updateFilteredImages();\r\n }\r\n\r\n selectDevices(devices) {\r\n this.deviceFilter = devices;\r\n this.updateFilteredImages();\r\n }\r\n\r\n selectAllDevices() {\r\n if (this.deviceList.length === this.deviceFilter.length)\r\n this.deviceFilter = [];\r\n else\r\n this.deviceFilter = this.deviceList.slice();\r\n this.updateFilteredImages();\r\n }\r\n\r\n selectDates(dates) {\r\n this.dateFilter = dates;\r\n this.updateFilteredImages();\r\n }\r\n\r\n selectAllDates() {\r\n if (this.dateList.length === this.dateFilter.length)\r\n this.dateFilter = [];\r\n else\r\n this.dateFilter = this.dateList.slice();\r\n this.updateFilteredImages();\r\n }\r\n\r\n selectExams(exams) {\r\n let dropped = this.selectedExams.filter(e => !exams.includes(e));\r\n let added = exams.filter(e => !this.selectedExams.includes(e));\r\n this.selectedExams = exams && exams.slice() || [];\r\n\r\n this.images.forEach(i => {\r\n if (dropped.some(e => e.exSrNo === i.exSrNo)) {\r\n this.selectedImages = this.selectedImages.filter(si => si !== i);\r\n } else if (added.some(e => e.exSrNo === i.exSrNo)) {\r\n if (!this.selectedImages.includes(i)) this.selectedImages.push(i);\r\n }\r\n })\r\n }\r\n\r\n selectAllExams() {\r\n if (this.exams.length === this.selectedExams.length) this.selectedExams = [];\r\n else this.selectedExams = this.exams.slice();\r\n\r\n if (this.selectedExams.length) this.selectedImages = this.images.slice();\r\n else this.selectedImages = [];\r\n }\r\n\r\n fixSelectedExams() {\r\n let addExams = [];\r\n let removeExams = [];\r\n this.exams.forEach(e => {\r\n let images = this.images.filter(i => i.exSrNo === e.exSrNo);\r\n let selectedImages = this.selectedImages.filter(i => i.exSrNo === e.exSrNo);\r\n let shouldBeSelected = images.length !== 0 && (images.length === selectedImages.length);\r\n let isSelected = this.selectedExams.some(se => se === e);\r\n if (shouldBeSelected && !isSelected) addExams.push(e);\r\n else if (!shouldBeSelected && isSelected) removeExams.push(e);\r\n });\r\n\r\n this.selectedExams = this.selectedExams\r\n .filter(e => !removeExams.includes(e))\r\n .concat(addExams);\r\n }\r\n\r\n selectImage(image) {\r\n if (!this.images.includes(image)) return;\r\n\r\n if (this.selectedImages.includes(image)) {\r\n this.selectedImages = this.selectedImages\r\n .filter(i => i !== image);\r\n this.selectedExams = this.selectedExams\r\n .filter(e => e.exSrNo !== image.exSrNo);\r\n }\r\n else {\r\n this.selectedImages.push(image);\r\n let exam = this.exams.find(e => e.exSrNo === image.exSrNo);\r\n if (exam && !this.selectedExams.includes(exam))\r\n {\r\n let imagesInExam = this.images.filter(i => i.exSrNo === image.exSrNo);\r\n let selectedInExam = this.selectedImages.filter(i => i.exSrNo === image.exSrNo);\r\n if (imagesInExam.length === selectedInExam.length)\r\n this.selectedExams.push(exam);\r\n }\r\n }\r\n }\r\n\r\n refreshExams(exams) {\r\n this.exams = exams;\r\n this.selectedExams = exams.filter(e => this.selectedExams.some(se => e.exSrNo === se.exSrNo));\r\n this.reconstructFilters();\r\n }\r\n\r\n removeImages(imgSrNos) {\r\n this.selectedImages = this.selectedImages.filter(i => !imgSrNos.includes(i.flSrNo));\r\n this.images = this.images.filter(i => !imgSrNos.includes(i.flSrNo));\r\n this.updateFilteredImages();\r\n }\r\n\r\n resetImages({ exams, images }) {\r\n this.exams = [...exams];\r\n this.images = [...images];\r\n this.updateFilteredImages();\r\n this.updateCurrentImages();\r\n }\r\n\r\n updateFilteredImages() {\r\n let eye = this.currentEye;\r\n this.filteredImages = this.images\r\n .filter(i => !eye || i.imgEye === eye || (i.imgEye === \"U\" && eye === \"OU\"))\r\n .filter(i => this.deviceFilter.includes(i.exDevice))\r\n .filter(i => this.dateFilter.includes(i.exDateDisplay));\r\n this.updateSelectedImages();\r\n this.updateFilteredExams();\r\n }\r\n\r\n updateSelectedImages() {\r\n this.selectedImages = this.selectedImages.filter(i => this.images.includes(i));\r\n this.fixSelectedExams();\r\n }\r\n\r\n updateFilteredExams() {\r\n this.filteredExams = this.exams.filter(e => this.filteredImages.some(i => e.exSrNo == i.exSrNo));\r\n }\r\n\r\n setCurrentExams(bounds) {\r\n this.currentExams = this.filteredExams.slice(bounds.start, bounds.end);\r\n this.updateCurrentImages();\r\n }\r\n\r\n updateCurrentImages() {\r\n this.currentImages = this.filteredImages.filter(i => this.currentExams.some(e => i.exSrNo == e.exSrNo));\r\n }\r\n\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n}\r\n\r\n","import { logDetailed } from \"../../helpers/utils\";\r\nimport PatientExamMultiviewContext from \"../../imageBrowserContext/PatientExamMultiviewContext\";\r\nimport { getsortedImages } from \"../../helpers/utils.js\"\r\n\r\nexport const openMultiview = ({ commit, getters, dispatch }) => {\r\n logDetailed(\"actions\", \"openMultiview\", \"execution-time\", \"beforeLoad\");\r\n let beforeLoad = Date.now();\r\n window.beforeLoadMultiview = beforeLoad;\r\n return dispatch(\"loadImageMetadataForAllExams\").finally(() => {\r\n let exams = getters.selectedExams;\r\n if (!exams || !exams.length) exams = getters.exams;\r\n let images = [];\r\n exams.forEach(e => \r\n {\r\n images.push.apply(images, getsortedImages(getters.imagesByExSrNo(e.exSrNo), getters.imagesOrderByExSrNo(e.exSrNo)))\r\n });\r\n let context = new PatientExamMultiviewContext(exams, images);\r\n context.constructFilters();\r\n commit(\"setPatientExamMultiviewContext\", context);\r\n commit(\"addToBrowserStack\", context);\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"actions\", \"openMultiview\", \"execution-time\", \"whole procedure\", elapsed);\r\n return dispatch(\"loadImagesForMultiview\");\r\n });\r\n};\r\n\r\nexport const selectEyeMultiview = ({ commit, dispatch }, eye) => {\r\n commit(\"selectEyeMultiview\", eye);\r\n return dispatch(\"loadImagesForMultiview\");\r\n};\r\n\r\nexport const selectDevicesMultiview = ({ commit, dispatch }, devices) => {\r\n commit(\"selectDevicesMultiview\", devices);\r\n return dispatch(\"loadImagesForMultiview\");\r\n};\r\n\r\nexport const selectAllDevicesMultiview = ({ commit, dispatch }) => {\r\n commit(\"selectAllDevicesMultiview\");\r\n return dispatch(\"loadImagesForMultiview\");\r\n};\r\n\r\nexport const selectDatesMultiview = ({ commit, dispatch }, dates) => {\r\n commit(\"selectDatesMultiview\", dates);\r\n return dispatch(\"loadImagesForMultiview\");\r\n};\r\n\r\nexport const selectAllDatesMultiview = ({ commit, dispatch }) => {\r\n commit(\"selectAllDatesMultiview\");\r\n return dispatch(\"loadImagesForMultiview\");\r\n};\r\n\r\nexport const selectAllExamsMultiview = ({ commit }) => {\r\n commit(\"selectAllExamsMultiview\");\r\n};\r\n\r\nexport const selectExamsMultiview = ({ commit }, exams) => {\r\n commit(\"selectExamsMultiview\", exams);\r\n};\r\n\r\nexport const closeMultiview = ({ commit, dispatch }) => {\r\n commit(\"clearPatientExamMultiviewContext\");\r\n commit(\"setOriginalOverlaySettings\", null);\r\n commit(\"clearImageQueue\", \"imageQueue\");\r\n dispatch(\"popBrowserStack\");\r\n};\r\n\r\nexport const refreshMultiview = ({ commit, dispatch, getters }) => {\r\n let action = getters.emrProSearchParams && getters.emrProExSrNo ? \"getPatientExamSSO\" : \"getPatientExams\"\r\n return dispatch(action)\r\n .then(() => {\r\n let exams = getters.selectedExams;\r\n if (!exams || !exams.length) exams = getters.exams;\r\n commit(\"refreshMultiview\", exams);\r\n commit(\"clearImageOrder\");\r\n return dispatch(\"loadImageMetadataForAllExams\", { forceLoad: true })\r\n }).then(() => dispatch(\"resetMultiviewImages\"));\r\n};\r\n\r\nexport const updateCurrentExamsMultiview = ({ dispatch, commit }, bounds) => {\r\n commit(\"setCurrentExamsMultiview\", bounds);\r\n return dispatch(\"loadImagesForMultiview\");\r\n}\r\n\r\nexport const resetMultiviewImages = ({ dispatch, getters, commit }) => {\r\n let exams = getters.selectedExams;\r\n if (!exams || !exams.length) exams = getters.exams;\r\n let images = [];\r\n exams.forEach(e => \r\n {\r\n images.push.apply(images, getsortedImages(getters.imagesByExSrNo(e.exSrNo), getters.imagesOrderByExSrNo(e.exSrNo)))\r\n });\r\n commit(\"resetMultiviewImages\", { exams, images });\r\n return dispatch(\"loadImagesForMultiview\");\r\n}\r\n\r\nexport const loadImagesForMultiview = ({ dispatch, getters }) =>\r\n dispatch(\"loadImages_thumb\", getters.currentMultiviewImages);","import store from \"../store\";\r\nimport { sortImagesByExamDate} from \"../helpers/utils\";\r\n\r\nconst allImages = \"All Images\";\r\nexport default class ProofsheetContext {\r\n constructor(images) {\r\n this.images = sortImagesByExamDate([...images]);\r\n this.filteredImages = [...this.images];\r\n this.currentImages = [];\r\n this.selectedImages = [];\r\n\r\n this.filterOption = allImages;\r\n this.currentEye = \"\";\r\n\r\n this.isDeletingImages = false;\r\n\r\n this.isMarkingImages = false;\r\n }\r\n\r\n get showAll() {\r\n return this.filterOption === allImages;\r\n }\r\n\r\n get allSelected() {\r\n return this.showAll || this.filteredImages.length == this.selectedImages.length;\r\n }\r\n\r\n refreshImages(){\r\n return store.dispatch(\"loadProofsheetImages\");\r\n }\r\n\r\n setFilterOption(option) {\r\n this.filterOption = option;\r\n this.updateFilteredImages();\r\n }\r\n\r\n setEyeFilter(eye) {\r\n if (eye === this.currentEye) eye = \"\";\r\n this.currentEye = eye;\r\n this.updateFilteredImages();\r\n }\r\n\r\n selectImage(image) {\r\n if (this.selectedImages.includes(image))\r\n this.selectedImages = this.selectedImages.filter(i => i !== image);\r\n else\r\n this.selectedImages.push(image);\r\n }\r\n\r\n selectAllImages() {\r\n let visibleImages = this.filteredImages;\r\n\r\n if (this.selectedImages.length === visibleImages.length)\r\n this.selectedImages = [];\r\n else \r\n this.selectedImages = visibleImages;\r\n }\r\n\r\n startDeleteImages() {\r\n this.isDeletingImages = true;\r\n }\r\n\r\n cancelDeleteImages() {\r\n this.isDeletingImages = false;\r\n }\r\n\r\n removeImages(imgSrNos) {\r\n this.images = this.images.filter(i => !imgSrNos.includes(i.flSrNo));\r\n this.updateFilteredImages();\r\n }\r\n\r\n startMarkImages(){\r\n this.isMarkingImages = true;\r\n }\r\n cancelMarkImages(){\r\n this.isMarkingImages = false;\r\n }\r\n\r\n updateFilteredImages() {\r\n let eye = this.currentEye;\r\n this.filteredImages = this.images\r\n .filter(i => !eye || i.imgEye === eye || (i.imgEye === \"U\" && eye === \"OU\"));\r\n this.updateSelectedImages();\r\n }\r\n\r\n updateSelectedImages() {\r\n this.selectedImages = sortImagesByExamDate(this.selectedImages.filter(i => this.filteredImages.includes(i)));\r\n }\r\n\r\n setCurrentImages(bounds) {\r\n let images = this.showAll ? this.filteredImages : this.selectedImages;\r\n this.currentImages = images.slice(bounds.start, bounds.end);\r\n }\r\n \r\n clearSelectedImages() {\r\n this.selectedImages = [];\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { logDetailed } from \"../../helpers/utils\";\r\nimport ProofsheetContext from \"../../imageBrowserContext/ProofsheetContext\";\r\n\r\nexport const openProofsheetFromExamList = ({ dispatch, getters, state }) => {\r\n logDetailed(\"actions\", \"openProofsheetFromExamList\", \"execution-time\", \"beforeLoad\");\r\n let beforeLoad = Date.now();\r\n window.beforeLoadProofsheet = beforeLoad;\r\n return dispatch(\"loadImageMetadataForAllExams\").finally(() => {\r\n let exams = getters.selectedExams;\r\n if (!exams || !exams.length) exams = getters.exams;\r\n let images = state.imageMap.filter(i => exams.some(e => e.exSrNo === i.exSrNo));\r\n let elapsed = Date.now() - beforeLoad;\r\n logDetailed(\"actions\", \"openProofsheetFromExamList\", \"execution-time\", \"whole procedure\", elapsed);\r\n dispatch(\"openProofsheet\", images);\r\n });\r\n};\r\n\r\nexport const openProofsheet = ({ commit, dispatch }, images) => {\r\n if (!images.length) {\r\n commit(\"displayStatus\", { message: \"Please select at least 1 image.\", level: \"error\" });\r\n return;\r\n }\r\n let context = new ProofsheetContext(images);\r\n commit(\"setProofsheetContext\", context);\r\n commit(\"addToBrowserStack\", context);\r\n dispatch(\"loadProofsheetImages\");\r\n};\r\n\r\nexport const closeProofsheet = ({ commit, dispatch, getters }) => {\r\n commit(\"clearProofsheetContext\");\r\n commit(\"clearImageQueue\", \"imageQueue\");\r\n dispatch(\"popBrowserStack\");\r\n dispatch(\"selectPatient\", getters.patient);\r\n};\r\n\r\nexport const selectEyeProofsheet = ({ commit, dispatch }, eye) => {\r\n commit(\"selectEyeProofsheet\", eye);\r\n dispatch(\"loadProofsheetImages\");\r\n};\r\n\r\nexport const selectFilterProofsheet = ({ commit, dispatch }, option) => {\r\n commit(\"selectFilterProofsheet\", option);\r\n dispatch(\"loadProofsheetImages\");\r\n};\r\n\r\nexport const selectImageProofsheet = ({ commit, dispatch, getters }, image) => {\r\n commit(\"selectImageProofsheet\", image);\r\n if (!getters.proofsheetShowAll)\r\n dispatch(\"loadProofsheetImages\");\r\n};\r\n\r\nexport const selectAllProofsheet = ({ commit, dispatch, getters }) => {\r\n commit(\"selectAllProofsheet\");\r\n if (!getters.proofsheetShowAll)\r\n dispatch(\"loadProofsheetImages\");\r\n};\r\n\r\nexport const startDeleteImages = ({ commit, getters }) => {\r\n if (!getters.selectedProofsheetImages.length)\r\n commit(\"displayStatus\", { message: \"Please select at least 1 image.\", level: \"error\" });\r\n else commit(\"startDeleteImages\");\r\n};\r\n\r\nexport const deleteImages = ({ commit, getters }) => {\r\n let imgSrNos = getters.proofsheetImagesToDelete.map(i => i.flSrNo);\r\n return axios.post(\"api/image/deleteImages\", imgSrNos)\r\n .then(response => {\r\n if (!response.data || !response.data.success) return Promise.reject();\r\n commit(\"removeImagesProofsheet\", imgSrNos);\r\n commit(\"removeImagesMultiview\", imgSrNos);\r\n commit(\"removeImagesImageMap\", imgSrNos);\r\n commit(\"cancelDeleteImages\");\r\n commit(\"displayStatus\", { message: \"Success!\", level: \"success\" });\r\n }).catch(() => {\r\n commit(\"displayStatus\", { message: \"An error occurred while removing images. Please try again later.\", level: \"error\" });\r\n });\r\n};\r\n\r\nexport const startDownloadImages = ({ commit, dispatch, getters }) => {\r\n if (!getters.selectedProofsheetImages.length)\r\n commit(\"displayStatus\", { message: \"Please select at least 1 image.\", level: \"error\" });\r\n else {\r\n return dispatch(\"generateImageDownloadZip\");\r\n }\r\n};\r\n\r\nexport const generateImageDownloadZip = ({ commit, getters }) => {\r\n let imgSrNos = getters.selectedProofsheetImages.map(i => i.flSrNo);\r\n commit(\"setLoadingMessage\", \"Generating zip file\");\r\n return axios.post(\"/api/image/generateZip\", imgSrNos)\r\n .then(response => {\r\n if (!response.data || !response.data.success) return Promise.reject();\r\n commit(\"setActiveDownload\", { link: response.data.fileName, text: \"Are you sure you want to download the selected image(s)?\" });\r\n })\r\n .catch(error => {\r\n commit(\"displayStatus\", { message: \"An error occurred while generating the zip file, please try again later.\", level: \"error\" });\r\n return Promise.reject(error);\r\n })\r\n .finally(() => commit(\"setLoadingMessage\", null));\r\n};\r\n\r\nexport const downloadActiveFile = ({ commit, dispatch, getters }) => {\r\n if (!getters.activeDownloadLink) return;\r\n let fileName = getters.activeDownloadLink;\r\n let escaped = encodeURIComponent(fileName);\r\n commit(\"setLoadingMessage\", \"Downloading zip file\");\r\n return axios.get(\"api/exam/zip/?fileName=\" + escaped, {\r\n responseType: \"arraybuffer\"\r\n }).then(response => {\r\n let blob = new Blob([response.data], { type: \"application/octet-stream\" });\r\n return dispatch(\"downloadBlob\", { blob, fileName });\r\n }).catch(() => {\r\n commit(\"displayStatus\", { message: \"An error occurred while downloading the zip file, please try again later.\", level: \"error\" });\r\n }).finally(() => {\r\n commit(\"setLoadingMessage\", null);\r\n });\r\n};\r\n\r\nexport const startMarkImages = ({ commit, getters }) => {\r\n if (!getters.selectedProofsheetImages.length)\r\n commit(\"displayStatus\", { message: \"Please select at least 1 image.\", level: \"error\" });\r\n else commit(\"startMarkImages\");\r\n};\r\n\r\nexport const markImages = ({ commit, getters }, eye) => {\r\n let imgSrNos = getters.selectedProofsheetImages.map(i => i.flSrNo);\r\n let exSrNo = getters.selectedProofsheetImages.map(i => i.exSrNo);\r\n exSrNo = exSrNo.filter((item, i, ar) => ar.indexOf(item) === i);\r\n let request = { imgSrNos, eye,exSrNo };\r\n return axios.post(\"api/image/markImages\", request)\r\n .then(response => {\r\n if (!response.data || !response.data.success) return Promise.reject();\r\n commit(\"updateImageLaterality\", request);\r\n commit(\"clearSelectedImages\");\r\n commit(\"displayStatus\", { message: \"Success!\", level: \"success\" });\r\n commit(\"cancelMarkImages\"); \r\n }).catch(() => {\r\n commit(\"displayStatus\", { message: \"An error occurred while marking images. Please try again later.\", level: \"error\" });\r\n });\r\n};\r\n\r\nexport const updateCurrentImagesProofsheet = ({ dispatch, commit }, bounds) => {\r\n commit(\"setCurrentImagesProofsheet\", bounds);\r\n return dispatch(\"loadProofsheetImages\");\r\n}\r\n\r\nexport const loadProofsheetImages = ({ dispatch, getters }) =>\r\n dispatch(\"loadImages_proof\", getters.currentProofsheetImages);","// this will call into axis5 api\r\n// axis5 api will be the middle man in between axis5 and deepdee\\\r\n\r\nimport axios from \"axios\";\r\nimport { logDetailed } from \"../../helpers/utils\";\r\n\r\nexport const createDeepDeeExam = ({ commit }, payload) => {\r\n logDetailed(\"actions\", \"createDeepDeeExam\");\r\n return axios.post(\"/api/deepdee/add\", {\r\n ExSrNo: payload.ExSrNo,\r\n PtSrNo: payload.PtSrNo,\r\n FlName: payload.FlName,\r\n FileSrNo: payload.FileSrNo\r\n })\r\n .then(response => {\r\n if (response.data.status == 1000) {\r\n logDetailed(\"actions\", \"createDeepDeeExam\", \"post failed. intermittent error.\");\r\n commit(\"displayStatus\", { message: \"An intermittent error occurred. Please try again later\", level: \"error\" });\r\n return Promise.resolve(response.data);\r\n }\r\n else if (response.data.status == 2000) {\r\n logDetailed(\"actions\", \"createDeepDeeExam\", \"post failed. analysis failed.\");\r\n commit(\"displayStatus\", { message: \"Analysis failed. \" + response.data.item.errorMessage, level: \"error\" });\r\n return Promise.resolve(response.data);\r\n }\r\n else {\r\n logDetailed(\"actions\", \"createDeepDeeExam\", \"post succeeded\", response.data);\r\n return Promise.resolve(response.data);\r\n }\r\n })\r\n .catch(error => {\r\n logDetailed(\"actions\", \"createDeepDeeExam\", \"post failed\");\r\n return Promise.reject(error.response);\r\n });\r\n}\r\n\r\nexport const getDeepDeeExam = (state, payload) => {\r\n logDetailed(\"actions\", \"getDeepDeeExam\");\r\n return axios.post(\"/api/deepdee/get\", {\r\n ExSrNo: payload.ExSrNo,\r\n PtSrNo: payload.PtSrNo,\r\n FlName: payload.FlName,\r\n FileSrNo: payload.FileSrNo\r\n })\r\n .then(response => {\r\n logDetailed(\"actions\", \"getDeepDeeExam\", \"post succeeded\", response.data);\r\n return Promise.resolve(response.data);\r\n })\r\n .catch(error => {\r\n logDetailed(\"actions\", \"getDeepDeeExam\", \"post failed\");\r\n return Promise.reject(error.response);\r\n });\r\n}","export default class PlaceholderContext {}\r\n\r\n","import { defaultColorSettings } from \"../canvas/canvasUtils\";\r\nimport { GRAYSCALE_MODES } from \"../config/config\";\r\nimport store from \"../store\";\r\n\r\nexport default class OverlayBrowserContext {\r\n constructor(images) {\r\n this.images = images;\r\n\r\n this.foreground = images[0];\r\n this.background = images.length > 1 ? images[1] : images[0];\r\n\r\n this.redColor = { name: \"R\", icon: \"red-icon.png\", ...defaultColorSettings(GRAYSCALE_MODES.Red, false) };\r\n this.greenColor = { name: \"G\", icon: \"green-icon.png\", ...defaultColorSettings(GRAYSCALE_MODES.Green, false) };\r\n this.blueColor = { name: \"B\", icon: \"blue-icon.png\", ...defaultColorSettings(GRAYSCALE_MODES.Blue, false) };\r\n this.colorSettingOptions = [this.redColor, this.greenColor, this.blueColor];\r\n }\r\n\r\n refreshImages() {\r\n return store.dispatch(\"loadOverlayImages\");\r\n }\r\n\r\n selectForeground(image) {\r\n this.foreground = image;\r\n }\r\n\r\n selectBackground(image) {\r\n this.background = image;\r\n }\r\n}","import axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport { SEARCH_BY, EyeTypes, OCTBrowserType } from \"../config/config\";\r\nimport { processScanAndSeriesTypes } from \"../imageBrowserContext/contextFactory\";\r\nimport { defaultSize } from \"../canvas/geometry\";\r\nimport PlaceholderContext from \"../imageBrowserContext/PlaceholderContext\";\r\nimport OverlayBrowserContext from \"../imageBrowserContext/overlayBrowserContext\";\r\nimport { isoDateTimeFormat, formatDateDisplay } from \"../helpers/dateUtils\";\r\nimport Annotation from \"../canvas/annotations/annotation\";\r\nimport { disableAutologoutEvents, setupAutologoutEvents } from \"../helpers/idle\";\r\nimport { logDetailed } from \"../helpers/utils\";\r\nimport { setOCTButtonText } from \"../imageBrowserContext/octUtils\";\r\n\r\nexport const initialize = (state, payload) => {\r\n Object.assign(state, payload);\r\n};\r\n\r\nexport const setWindowSize = state => {\r\n document.body.height = window.innerHeight;\r\n document.body.width = window.innerWidth;\r\n state.windowHeight = window.innerHeight;\r\n state.windowWidth = window.innerWidth;\r\n};\r\n\r\nexport const setCalledFullscreenToggle = state => state.calledFullscreenToggle = true;\r\nexport const resetCalledFullscreenToggle = state => state.calledFullscreenToggle = false;\r\n\r\nexport const resetFullscreen = state => state.isFullscreen = false;\r\nexport const toggleFullscreenState = state => state.isFullscreen = !state.isFullscreen;\r\n\r\nexport const toggleFullscreen = state => {\r\n var elem = document.documentElement;\r\n if (\r\n document.fullscreenEnabled ||\r\n document.webkitFullscreenEnabled ||\r\n document.mozFullScreenEnabled ||\r\n document.msFullscreenEnabled\r\n ) {\r\n if (!state.isFullscreen) {\r\n if (elem.requestFullscreen) {\r\n elem.requestFullscreen();\r\n } else if (elem.webkitRequestFullscreen) {\r\n elem.webkitRequestFullscreen();\r\n } else if (elem.mozRequestFullScreen) {\r\n elem.mozRequestFullScreen();\r\n } else if (elem.msRequestFullscreen) {\r\n elem.msRequestFullscreen();\r\n }\r\n toggleFullscreenState(state);\r\n } else {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n document.webkitExitFullscreen();\r\n } else if (document.mozCancelFullScreen) {\r\n document.mozCancelFullScreen();\r\n } else if (document.msExitFullscreen) {\r\n document.msExitFullscreen();\r\n }\r\n toggleFullscreenState(state);\r\n }\r\n }\r\n}\r\n\r\nexport const setOpenedFromApp = state => {\r\n state.isOpenedInApp = true;\r\n}\r\n\r\n// #region authorization management\r\nexport const setAxiosHeader = (state, access) => {\r\n // use for app print page\r\n // set up axios hearder for api calls without other auth info\r\n axios.defaults.headers.common.Authorization = `Bearer ${access}`;\r\n};\r\nexport const updateAuth = (state, auth) => {\r\n // if we update auth from the refresh-token workflow, we don't get the user identifying info back\r\n // so, assume that, if auth.user is missing, we need to reuse the old auth.user\r\n if (!auth.user && state.auth && state.auth.user)\r\n auth.user = state.auth.user;\r\n state.auth = auth;\r\n\r\n let localState = { auth: state.auth };\r\n let json = JSON.stringify(localState);\r\n sessionStorage.setItem(\"auth\", json);\r\n\r\n setAuthHeader(state);\r\n setRefreshTokenExpiration(state);\r\n};\r\nexport const setAuthHeader = state => {\r\n const accessToken = state.auth && state.auth.access_token;\r\n if (accessToken)\r\n axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\r\n};\r\nexport const setRefreshTokenExpiration = (state) => {\r\n const expires_in = state.auth && state.auth.expires_in;\r\n if (expires_in) {\r\n const expires_time = new Date().getTime() + expires_in * 1000;\r\n state.auth.expires_time = expires_time;\r\n }\r\n};\r\nexport const goActive = state => state.isIdle = false;\r\nexport const goInactive = state => state.isIdle = true;\r\nexport const disableAutoLogout = state => state.disableAutoLogout = true;\r\nexport const enableAutoLogout = state => state.disableAutoLogout = false;\r\nexport const setBackgroundTimestamp = (state, time) => state.backgroundTimestamp = time;\r\nexport const logout = state => {\r\n delete axios.defaults.headers.common.Authorization;\r\n state.auth = null;\r\n state.wasEmrPro = false;\r\n state.emrProSearchParams = null;\r\n setPatients(state, []);\r\n setExams(state, []);\r\n clearSelectedPatient(state);\r\n resetSearch(state);\r\n disableAutologoutEvents(); // make sure auto logout is disabled at the end of the logout process\r\n sessionStorage.removeItem(\"auth\");\r\n};\r\n// #endregion\r\n\r\n// #region mfa\r\nexport const set2faEnabled = (state, enabled) => {\r\n state.mfa.enabled = enabled;\r\n};\r\nexport const set2faSecret = (state, secret) => {\r\n state.mfa.secret = secret;\r\n};\r\n// #endregion\r\n\r\n// #region user preferences\r\nexport const setUserPrefs = (state, userPrefs) => {\r\n state.userPrefs.fullscreen = (typeof userPrefs.fullscreen === \"undefined\") ? null : userPrefs.fullscreen;\r\n state.userPrefs.patientDateSetting = (typeof userPrefs.patientTimespan === \"undefined\") ? null : userPrefs.patientTimespan;\r\n state.userPrefs.defaultColorTheme = (typeof userPrefs.defaultColorTheme === \"undefined\") ? null : userPrefs.defaultColorTheme;\r\n state.userPrefs.pageSize = (typeof userPrefs.pageSize === \"undefined\") ? null : userPrefs.pageSize;\r\n state.userPrefs.autoPatientExamRefresh = (typeof userPrefs.autoPatientExamRefresh === \"undefined\") ? null : userPrefs.autoPatientExamRefresh;\r\n state.userPrefs.defaultHVF = (typeof userPrefs.defaultHVF === \"undefined\") ? null : userPrefs.defaultHVF;\r\n state.userPrefs.defaultCirrusView = (typeof userPrefs.defaultCirrusView === \"undefined\") ? null : userPrefs.defaultCirrusView;\r\n state.userPrefs.defaultHVFview = (typeof userPrefs.defaultHVFview === \"undefined\") ? null : userPrefs.defaultHVFview;\r\n state.userPrefs.multiviewCollapse = (typeof userPrefs.multiviewCollapse === \"undefined\") ? null : userPrefs.multiviewCollapse;\r\n state.userPrefs.cirrusScanDisplayRatio = (typeof userPrefs.cirrusScanDisplayRatio === \"undefined\") ? null : userPrefs.cirrusScanDisplayRatio;\r\n};\r\n\r\nexport const setPatientDateSetting = (state, dateSetting) => {\r\n state.userPrefs.patientDateSetting = dateSetting;\r\n};\r\n\r\nexport const setAutoPatientRefresh = (state, value) => {\r\n state.userPrefs.autoPatientExamRefresh = value;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region snackbar statuses\r\nexport const setDelayedStatus = (state, status) => {\r\n state.delayedStatus = {\r\n message: status.message,\r\n level: status.level\r\n };\r\n};\r\nexport const tryDisplayDelayedStatus = state => {\r\n if (state.delayedStatus) {\r\n displayStatus(state, state.delayedStatus);\r\n state.delayedStatus = null;\r\n }\r\n};\r\nexport const displayStatus = (state, status) => {\r\n state.status.level = status.level;\r\n state.status.message = status.message;\r\n state.status.timeout = status.indefinite ? 0 : 5000;\r\n};\r\nexport const destroyStatus = state => {\r\n state.status.message = null;\r\n state.status.level = null;\r\n};\r\n// #endregion\r\n\r\n// #region static data\r\nexport const setPhysicians = (state, physicians) => {\r\n state.physicians = physicians;\r\n};\r\nexport const setDevices = (state, devices) => {\r\n state.devices = devices;\r\n};\r\nexport const setDeviceLogs = (state, logs) => {\r\n state.deviceLogs = logs;\r\n}\r\nexport const setdevLocations = (state, devLocations) => {\r\n state.devLocations = devLocations;\r\n};\r\nexport const setProcedures = (state, procedures) => {\r\n state.procedures = procedures;\r\n};\r\nexport const siteInfo = (state, siteInfo) => {\r\n state.siteInfo = siteInfo;\r\n};\r\nexport const setActDirEnabled = (state, isEnabled) => {\r\n state.isActDirEnabled = isEnabled;\r\n}\r\nexport const setPracticeGroupsList = (state, list) => {\r\n state.practiceGroupsList = list;\r\n}\r\n// #endregion\r\n\r\n// #region administration\r\nexport const userList = (state, userList) => {\r\n state.userList = userList;\r\n};\r\n// #endregion\r\n\r\n// #region patient search\r\nexport const quickSearch = (state, text) => {\r\n logDetailed(\"mutations\", \"quickSearch\", text);\r\n // clear other searches\r\n clearSearch(state);\r\n state.patientSearch.searchBy = text ? SEARCH_BY.Keyword : SEARCH_BY.All;\r\n state.patientSearch.keyword = text;\r\n};\r\nexport const openAdvancedSearch = state => {\r\n logDetailed(\"mutations\", \"openAdvancedSearch\");\r\n state.advancedSearchDialog = true;\r\n state.patientSearch.advancedSearch = null;\r\n};\r\nexport const closeAdvancedSearch = state => {\r\n logDetailed(\"mutations\", \"closeAdvancedSearch\");\r\n state.advancedSearchDialog = false;\r\n state.patientSearch.advancedSearch = null;\r\n};\r\nexport const advancedSearch = (state, search) => {\r\n logDetailed(\"mutations\", \"advancedSearch\", search);\r\n // clear other searches\r\n clearSearch(state);\r\n\r\n state.advancedSearchDialog = false;\r\n state.patientSearch.searchBy = SEARCH_BY.Advanced;\r\n let startDate = search.date.from ? moment(search.date.from + \"T00:00:00\") : null;\r\n let endDate = search.date.to ? moment(search.date.to + \"T00:00:00\") : null;\r\n state.patientSearch.dateStart = startDate;\r\n state.patientSearch.dateEnd = endDate;\r\n state.patientSearch.advancedSearch = {\r\n patientID: search.patientID,\r\n patientName: search.patientName,\r\n isTeachingCase: JSON.parse(search.teaching),\r\n isDictated: JSON.parse(search.dictated),\r\n examTypes: search.device,\r\n examPhysicians: search.physicians,\r\n examPathology: search.examPathology,\r\n searchAppend: search.searchOP,\r\n patientDOB: search.dob,\r\n\r\n // todo - are these fields missing from the advanced search dialog?\r\n ptSrNo: \"\",\r\n exSrNo: \"\",\r\n examDate: \"\",\r\n fileSrNo: \"\",\r\n examProcedure: []\r\n };\r\n};\r\nexport const resetSearch = state => {\r\n logDetailed(\"mutations\", \"resetSearch\");\r\n clearSearch(state);\r\n};\r\nexport const ssoSearch = (state, query) => {\r\n logDetailed(\"mutations\", \"ssoSearch\", query);\r\n\r\n // Look at local storage to see if initial search was an ssoSearch with emrPro\r\n if (query.emrpro && query.emrpro.toLowerCase() == \"true\"){\r\n logDetailed(\"mutations\", \"ssoSearch\", \"emrpro was true in search query\");\r\n state.emrProSearchParams = query;\r\n state.wasEmrPro = true;\r\n }\r\n else{\r\n state.emrProSearchParams = null;\r\n state.wasEmrPro = false;\r\n }\r\n\r\n // clear other searches\r\n clearSearch(state);\r\n\r\n state.ssoSearch = query;\r\n state.patientSearch.searchBy = (query.emrpro && query.emrpro.toLowerCase() == \"true\") ? SEARCH_BY.EMRLink : SEARCH_BY.Advanced;\r\n state.patientSearch.dateStart = query.exdate ? moment(query.exdate).startOf(\"day\").format(isoDateTimeFormat) : null;\r\n state.patientSearch.dateEnd = query.exdate ? moment(query.exdate).endOf(\"day\").format(isoDateTimeFormat) : null;\r\n let names = [query.ptlname, query.ptfname].filter(n => !!n);\r\n let patientName = names.join(\", \").replace(new RegExp(\"\\\\+\", \"g\"), \" \");// replace + with space because whitespace is ignored and replace with + by base64 encoding\r\n let devices = query.extype ? state.devices.filter(d => d.description.includes(query.extype)) : [];\r\n let searchAppend = (query.exsrno || query.ptid || query.ptlname || query.ptfname || query.exdate || query.extype) ? \"and\" : \"or\";\r\n state.patientSearch.advancedSearch = {\r\n patientID: query.ptid || \"\",\r\n patientName: patientName || \"\",\r\n patientDOB: query.ptdob,\r\n examTypes: devices,\r\n exSrNo: query.exsrno || \"\",\r\n ptSex: query.ptsex || \"\",\r\n searchAppend: searchAppend,\r\n\r\n examDate: null,\r\n isTeachingCase: null,\r\n isDictated: null,\r\n examPhysicians: [],\r\n examPathology: \"\",\r\n ptSrNo: \"\",\r\n fileSrNo: \"\",\r\n examProcedure: []\r\n };\r\n};\r\nexport const clearSSOSearch = state => {\r\n logDetailed(\"mutations\", \"clearSSOSearch\");\r\n state.ssoSearch = null;\r\n}\r\nexport const setSearchTimespan = (state, timespan) => {\r\n logDetailed(\"mutations\", \"setSearchTimespan\", \"timespan\", timespan, \"state.patientSearch.keyword\", state.patientSearch.keyword);\r\n\r\n // clear quicksearch, advancedsearch when setting search timespan\r\n if (!state.ssoSearch)\r\n clearSearch(state);\r\n doSetSearchTimespan(state, timespan);\r\n};\r\nfunction clearSearch(state) {\r\n logDetailed(\"mutations\", \"clearSearch\");\r\n state.patientSearch.keyword = \"\";\r\n state.patientSearchOptions.page = 1;\r\n doSetSearchTimespan(state, state.userPrefs.patientDateSetting || \"all\");\r\n state.patientSearch.advancedSearch = null;\r\n state.ssoSearch = null;\r\n}\r\nfunction doSetSearchTimespan(state, timespan) {\r\n logDetailed(\"mutations\", \"doSetSearchTimespan\", timespan);\r\n state.patientSearch.timespan = timespan;\r\n if (!state.ssoSearch) {\r\n if (timespan && timespan != \"all\") {\r\n let { startDate, endDate } = getDateInterval(timespan);\r\n state.patientSearch.searchBy = SEARCH_BY.DateIntervals;\r\n state.patientSearch.dateStart = startDate;\r\n state.patientSearch.dateEnd = endDate;\r\n } else {\r\n state.patientSearch.searchBy = SEARCH_BY.All;\r\n state.patientSearch.dateStart = null;\r\n state.patientSearch.dateEnd = null;\r\n }\r\n }\r\n}\r\nfunction getDateInterval(interval) {\r\n return {\r\n startDate: moment().startOf(interval).format(isoDateTimeFormat),\r\n endDate: moment().endOf(interval).format(isoDateTimeFormat)\r\n };\r\n}\r\nexport const updatePatientSearchOptions = (state, options) => {\r\n logDetailed(\"mutations\", \"updatePatientSearchOptions\", options);\r\n state.patientSearchOptions = { ...options };\r\n}\r\n// #endregion\r\n\r\n// #region patients, exams, and images\r\nexport const startLoadingPatients = state => state.loadingPatients = true;\r\nexport const stopLoadingPatients = state => state.loadingPatients = false;\r\nexport const setPatients = (state, patients) => {\r\n state.patients = patients;\r\n};\r\nexport const setTotalPatients = (state, total) => state.totalPatients = total;\r\nexport const selectPatient = (state, patient) => state.patient = patient;\r\nexport const clearSelectedPatient = state => {\r\n state.patient = null;\r\n state.exams = null;\r\n state.selectedExams = [];\r\n clearBrowserContext(state);\r\n};\r\nexport const startLoadingExams = state => state.loadingExams = true;\r\nexport const stopLoadingExams = state => state.loadingExams = false;\r\nexport const setExams = (state, exams) => {\r\n state.exams = exams;\r\n // if there are any exams, update selected exams to the intersection of the previous selected exams and the new exams\r\n if (exams.length)\r\n state.selectedExams = exams.filter(e => state.selectedExams.some(se => se.exSrNo == e.exSrNo));\r\n};\r\nexport const selectExams = (state, exams) => {\r\n state.selectedExams = exams || [];\r\n};\r\nexport const setExamToDelete = (state, exam) => state.examToDelete = exam;\r\nexport const addExamToDeleteList = (state, exams) => {\r\n state.examsToDelete = exams;\r\n}\r\nexport const clearExamDeleteList = (state) => state.examsToDelete = [];\r\nexport const setExamToDownload = (state, link) => state.examToDownload = link;\r\nexport const setExamToEdit = (state, exam) => state.examToEdit = exam;\r\nexport const clearEditExam = state => state.examToEdit = null;\r\nexport const clearImageOrder = state => state.imageOrder = [];\r\nexport const setExamImageMetadataLoaded = (state, exSrNo) =>\r\n{\r\n let exams = state.exams.filter(e => e.exSrNo == exSrNo);\r\n if (exams && exams.length)\r\n exams[0].loadedImageMetadata = true;\r\n}\r\nexport const storeImages = (state, { exImgDataRes, exDevice, exDate, dateDisplay, moment: exMoment }) => {\r\n let images = exImgDataRes.exImgData;\r\n let exSrNo = exImgDataRes.exSrNo;\r\n \r\n if (!images || !images.length) return;\r\n\r\n for (let i = 0; i < images.length; i++) {\r\n let image = images[i];\r\n let order = {\r\n flSrNo: image.flSrNo,\r\n exSrNo: exSrNo,\r\n imgSubType: image.imgSubType,\r\n imgEye: image.imgEye\r\n };\r\n \r\n if (!state.imageOrder.some(e => e.flSrNo == order.flSrNo))\r\n state.imageOrder.push(order);\r\n\r\n let imgKey = image.flSrNo + \"\";\r\n if (image.imgSubType) imgKey += \"_\" + image.imgSubType;\r\n if (!state.imageMap.some(i => i.imgKey === imgKey)) {\r\n image.exDevice = exDevice;\r\n image.exDate = exDate;\r\n image.exMoment = exMoment;\r\n image.exDateDisplay = dateDisplay;\r\n image.exIndex = i + 1;\r\n image.imgKey = imgKey;\r\n image.exSrNo = exSrNo;\r\n image.isSelected = false;\r\n\r\n addImgWrapper(image, \"img\");\r\n addImgWrapper(image, \"thumb\");\r\n addImgWrapper(image, \"proof\");\r\n\r\n state.imageMap.push(image);\r\n }\r\n }\r\n};\r\nfunction addImgWrapper(image, prefix) {\r\n image[prefix + \"NotFound\"] = false;\r\n image[prefix + \"IsLoading\"] = false;\r\n image[prefix + \"IsQueued\"] = false;\r\n image[prefix + \"HtmlObject\"] = null;\r\n image[prefix + \"ObjectUrl\"] = null;\r\n image[prefix + \"Size\"] = defaultSize();\r\n}\r\nexport const setImageState = (state, imageState) => {\r\n let image = state.imageMap.find(i => i.imgKey === imageState.imgKey);\r\n if (!image) return;\r\n Object.assign(image, imageState);\r\n};\r\nexport const removeImagesImageMap = (state, imgSrNos) => {\r\n state.imageMap = state.imageMap.filter(i => !imgSrNos.includes(i.flSrNo));\r\n}\r\nexport const updateOCTExamInfo = (state, data) => {\r\n if (!data || !data.length) return;\r\n data.forEach(d => {\r\n let exam = state.exams.find(e => e.exSrNo === d.exSrNo);\r\n if (!exam) return;\r\n exam.odGroups = processScanAndSeriesTypes(exam.manufacturer, d.odGroupList, exam.moment, EyeTypes.OD);\r\n exam.osGroups = processScanAndSeriesTypes(exam.manufacturer, d.osGroupList, exam.moment, EyeTypes.OS);\r\n if (exam.odGroups.length)\r\n exam.browserType = setBrowserType(exam.odGroups);\r\n if (exam.osGroups.length && !exam.browserType)\r\n exam.browserType = setBrowserType(exam.osGroups);\r\n if (!exam.browserType)\r\n exam.octDateButtonText = exam.dateDisplay;\r\n else {\r\n setOCTButtonText(exam);\r\n }\r\n });\r\n};\r\n\r\nexport const updateExamImageDate = (state, exam) => {\r\n let images = state.imageMap.filter(i => i.exSrNo === exam.exSrNo);\r\n images.forEach(e => {\r\n e.exDate = exam.dateIso;\r\n e.exDateDisplay = formatDateDisplay(exam.dateIso);\r\n });\r\n}\r\n\r\nexport const updateMultiviewEye = (state, eye) => {\r\n state.imageBrowserContext && state.imageBrowserContext.switchEye\r\n && state.imageBrowserContext.switchEye(eye);\r\n}\r\n// #endregion\r\n\r\n// #region image browser\r\nexport const setBrowserContext = (state, context) => {\r\n state.imageBrowserContext = context;\r\n};\r\nexport const clearBrowserContext = state => {\r\n state.imageBrowserContext && state.imageBrowserContext.clearContext();\r\n state.imageBrowserContext = null;\r\n};\r\nexport const setBrowserType = (groups) => {\r\n if (groups.some(item => item.browserType == OCTBrowserType.Cirrus) && groups.some(item => item.browserType == OCTBrowserType.Spectralis))\r\n return \"Cirrus | Spectralis\";\r\n else {\r\n if (groups.some(item => item.browserType == OCTBrowserType.Cirrus))\r\n return \"Cirrus\";\r\n else if (groups.some(item => item.browserType == OCTBrowserType.Spectralis))\r\n return \"Spectralis\";\r\n }\r\n return \"\";\r\n};\r\n// #region select images\r\nexport const selectImage = (state, image) => {\r\n state.imageBrowserContext && state.imageBrowserContext.selectImage\r\n && state.imageBrowserContext.selectImage(image);\r\n};\r\nexport const resetImage = state => {\r\n state.imageBrowserContext && selectImage(state, state.imageBrowserContext.image);\r\n};\r\nexport const setCurrentImageLoading = (state, isLoading) => {\r\n state.imageBrowserContext && state.imageBrowserContext.image\r\n && (state.imageBrowserContext.image.imgIsLoading = isLoading);\r\n};\r\nexport const setPlayInterval = (state, intervalId) => {\r\n state.imageBrowserContext && state.imageBrowserContext.setPlayInterval\r\n && state.imageBrowserContext.setPlayInterval(intervalId);\r\n};\r\nexport const pause = state => {\r\n state.imageBrowserContext && state.imageBrowserContext.pause\r\n && state.imageBrowserContext.pause();\r\n};\r\nexport const setPlayRate = (state, rate) => {\r\n state.imageBrowserContext && state.imageBrowserContext.setPlayRate\r\n && state.imageBrowserContext.setPlayRate(rate);\r\n};\r\nexport const setDiagnosisText = (state, text) => {\r\n state.imageBrowserContext && state.imageBrowserContext.setDiagnosisText\r\n && state.imageBrowserContext.setDiagnosisText(text);\r\n}\r\nexport const setDiagnosisColor = (state, color) => {\r\n state.imageBrowserContext && state.imageBrowserContext.setDiagnosisColor\r\n && state.imageBrowserContext.setDiagnosisColor(color);\r\n}\r\nexport const setImageMask = (state, mask) => {\r\n state.imageBrowserContext && state.imageBrowserContext.setImageMask\r\n && state.imageBrowserContext.setImageMask(mask);\r\n}\r\nexport const toggleDeepDeeHighlight = state => {\r\n state.imageBrowserContext && state.imageBrowserContext.toggleDeepDeeHighlight\r\n && state.imageBrowserContext.toggleDeepDeeHighlight();\r\n}\r\nexport const setDeepDeeAnnotation = (state, annotation) => {\r\n state.imageBrowserContext && state.imageBrowserContext.setDeepDeeAnnotation\r\n && state.imageBrowserContext.setDeepDeeAnnotation(annotation);\r\n}\r\nexport const toggleDeepDeeAnnotation = state => {\r\n state.imageBrowserContext && state.imageBrowserContext.toggleDeepDeeAnnotation\r\n && state.imageBrowserContext.toggleDeepDeeAnnotation();\r\n}\r\n\r\n// #endregion\r\n\r\n// #region view sizes and transformations\r\nexport const toggleFlipped = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleFlipped)\r\n state.imageBrowserContext.toggleFlipped();\r\n};\r\nexport const toggleFlipped90 = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleFlipped90)\r\n state.imageBrowserContext.toggleFlipped90();\r\n};\r\nexport const setTransform = (state, transform) => {\r\n state.imageBrowserContext.setTransform(transform);\r\n state.imageBrowserContext.annotations.forEach(e => {\r\n e.setParentTransform(transform);\r\n });\r\n};\r\n// #endregion\r\n\r\n// #region color correction\r\nexport const flattenedImageReady = (state, ready) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.setFlattenedImageReady)\r\n state.imageBrowserContext.setFlattenedImageReady(ready);\r\n};\r\nexport const toggleGrayscaleMode = (state, mode) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleGrayscaleMode)\r\n state.imageBrowserContext.toggleGrayscaleMode(mode);\r\n};\r\nexport const clearGrayscaleMode = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.clearGrayscaleMode)\r\n state.imageBrowserContext.clearGrayscaleMode();\r\n};\r\nexport const updateBrightness = (state, brightness) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.updateBrightness)\r\n state.imageBrowserContext.updateBrightness(brightness);\r\n};\r\nexport const updateContrast = (state, contrast) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.updateContrast)\r\n state.imageBrowserContext.updateContrast(contrast);\r\n};\r\nexport const updateGamma = (state, gamma) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.updateGamma)\r\n state.imageBrowserContext.updateGamma(gamma);\r\n};\r\nexport const updateGreenBrightness = (state, brightness) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.updateGreenBrightness)\r\n state.imageBrowserContext.updateGreenBrightness(brightness);\r\n};\r\nexport const updateGreenContrast = (state, contrast) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.updateGreenContrast)\r\n state.imageBrowserContext.updateGreenContrast(contrast);\r\n};\r\n// #endregion\r\n\r\n// #region annotations and measurements\r\nexport const selectCalibration = (state, name) => {\r\n state.imageBrowserContext && state.imageBrowserContext.selectCalibration(name);\r\n};\r\nexport const toggleIsAnnotating = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleIsAnnotating)\r\n state.imageBrowserContext.toggleIsAnnotating();\r\n};\r\nexport const clearAnnotationMode = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.clearAnnotationMode)\r\n state.imageBrowserContext.clearAnnotationMode();\r\n};\r\nexport const updateAnnotationColor = (state, color) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.updateAnnotationColor)\r\n state.imageBrowserContext.updateAnnotationColor(color);\r\n};\r\nexport const updateAnnotationTextSize = (state, size) =>\r\n state.imageBrowserContext && state.imageBrowserContext.updateAnnotationTextSize && state.imageBrowserContext.updateAnnotationTextSize(size);\r\nexport const toggleAnnotationMode = (state, mode) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleAnnotationMode)\r\n state.imageBrowserContext.toggleAnnotationMode(mode);\r\n};\r\nexport const clearActiveAnnotation = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.clearActiveAnnotation)\r\n state.imageBrowserContext.clearActiveAnnotation();\r\n};\r\nexport const setActiveAnnotation = (state, annotation) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.setActiveAnnotation)\r\n state.imageBrowserContext.setActiveAnnotation(annotation);\r\n};\r\nexport const clearAnnotations = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.clearAnnotations)\r\n state.imageBrowserContext.clearAnnotations();\r\n};\r\nexport const addAnnotation = (state, annotation) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.addAnnotation)\r\n state.imageBrowserContext.addAnnotation(annotation);\r\n};\r\nexport const deleteAnnotation = (state, index) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.deleteAnnotation)\r\n state.imageBrowserContext.deleteAnnotation(index);\r\n};\r\nexport const setTextAnnotationToEdit = (state, annotation) => {\r\n state.textAnnotationToEdit = annotation;\r\n};\r\nexport const setAnnotationText = (state, text) => {\r\n if (state.textAnnotationToEdit && state.textAnnotationToEdit.updateTextArea)\r\n state.textAnnotationToEdit.updateTextArea(text);\r\n};\r\nexport const updateMagnifier = (state, position) =>\r\n state.imageBrowserContext && state.imageBrowserContext.updateMagnifier && state.imageBrowserContext.updateMagnifier(position);\r\nexport const mousedownMagnifier = (state) =>\r\n state.imageBrowserContext && state.imageBrowserContext.mousedownMagnifier && state.imageBrowserContext.mousedownMagnifier();\r\nexport const mouseupMagnifier = (state) =>\r\n state.imageBrowserContext && state.imageBrowserContext.mouseupMagnifier && state.imageBrowserContext.mouseupMagnifier();\r\n\r\nexport const setShapeOutlineContext = (state, context) => {\r\n state.shapeOutlineContext = context;\r\n}\r\nexport const setShapeOutlineSyncContext = (state, context) => {\r\n state.shapeOutlineSyncContext = context;\r\n}\r\n\r\nexport const setShapeFillContext = (state, context) => {\r\n state.shapeFillContext = context;\r\n}\r\nexport const setShapeFillSyncContext = (state, context) => {\r\n state.shapeFillSyncContext = context;\r\n}\r\n// #endregion\r\n\r\n// #region rgb\r\nexport const toggleRGB = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleRGB)\r\n state.imageBrowserContext.toggleRGB();\r\n};\r\nexport const toggleRGBSync = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleRGBSync)\r\n state.imageBrowserContext.toggleRGBSync();\r\n};\r\nexport const toggleGreenSync = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.toggleGreenSync)\r\n state.imageBrowserContext.toggleGreenSync();\r\n};\r\nexport const setRGBExpanded = (state, expanded) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.setRGBExpanded)\r\n state.imageBrowserContext.setRGBExpanded(expanded);\r\n};\r\nexport const selectRGBView = (state, index) => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.selectRGBView)\r\n state.imageBrowserContext.selectRGBView(index);\r\n};\r\nexport const replicateCurrentRGBToMain = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.replicateCurrentRGBToMain)\r\n state.imageBrowserContext.replicateCurrentRGBToMain();\r\n};\r\nexport const replicateMainToCurrentRGB = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.replicateMainToCurrentRGB)\r\n state.imageBrowserContext.replicateMainToCurrentRGB();\r\n};\r\nexport const replicateMainToAllRGB = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.replicateMainToAllRGB)\r\n state.imageBrowserContext.replicateMainToAllRGB();\r\n};\r\nexport const replicateGreenMainToAllRGB = state => {\r\n if (state.imageBrowserContext && state.imageBrowserContext.replicateGreenMainToAllRGB)\r\n state.imageBrowserContext.replicateGreenMainToAllRGB();\r\n};\r\n// #endregion\r\n\r\n// #region OCT\r\n\r\n// #region oct images\r\nexport const storeOCTImages = (state, {\r\n info,\r\n images,\r\n context,\r\n loadPreviews,\r\n imageType,\r\n segmentationImageType\r\n}) => {\r\n if (!images || !images.length) return;\r\n for (let i = 0; i < images.length; i++) {\r\n let image = images[i];\r\n image.imgKey = context.exSrNo + \"_\" + context.groupName + \"_\" + imageType;\r\n if (image.index !== undefined) image.imgKey += \"_\" + image.index;\r\n if (image.originalIndex !== undefined) image.imgKey += \"_\" + image.originalIndex;\r\n if (!state.octImageMap.some(i => i.imgKey === image.imgKey)) {\r\n image.exSrNo = context.exSrNo;\r\n image.ptSrNo = context.ptSrNo;\r\n image.groupName = context.groupName;\r\n image.browserType = context.browserType;\r\n image.imageType = imageType;\r\n\r\n addImgWrapper(image, \"img\");\r\n\r\n if (loadPreviews) {\r\n image.loadPreview = true;\r\n addImgWrapper(image, \"preview\");\r\n }\r\n\r\n if (info && info.sliceHasSegmentation && segmentationImageType) {\r\n image.loadSegmentation = true;\r\n image.segmentationIsQueued = true;\r\n image.segmentationImageType = segmentationImageType;\r\n image.sliceSegmentationIsLoading = false;\r\n image.sliceSegmentationLayerData = null;\r\n image.sliceSegmentationThicknessData = null;\r\n image.segmentationNotFound = false;\r\n }\r\n\r\n state.octImageMap.push(image);\r\n }\r\n }\r\n};\r\nexport const setOCTImageState = (state, imageState) => {\r\n let image = state.octImageMap.find(i => i.imgKey === imageState.imgKey);\r\n if (!image) return;\r\n Object.assign(image, imageState);\r\n};\r\nexport const selectOCTImage = (state, { currentKey, imgKey }) => {\r\n let image = state.octImageMap.find(i => i.imgKey === imgKey);\r\n if (!image || !state.imageBrowserContext) return;\r\n state.imageBrowserContext.setOCTImage(currentKey, image);\r\n};\r\nexport const loadThicknessMap = (state, imgKey) => {\r\n if (!state.imageBrowserContext || !state.imageBrowserContext.loadThicknessMap) return;\r\n let image = state.octImageMap.find(i => i.imgKey === imgKey);\r\n if (!image) return;\r\n state.imageBrowserContext.loadThicknessMap(image);\r\n};\r\nexport const calculateDifferenceMap = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.calculateDifferenceMap\r\n && state.imageBrowserContext.calculateDifferenceMap();\r\nexport const calculateDifferenceAnalysis = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.calculateDifferenceAnalysis\r\n && state.imageBrowserContext.calculateDifferenceAnalysis();\r\nexport const calculateThicknessDifference = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.calculateThicknessDifference\r\n && state.imageBrowserContext.calculateThicknessDifference();\r\nexport const isBothMeasuring = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.isBothMeasuring\r\n && state.imageBrowserContext.isBothMeasuring();\r\nexport const reloadChildrenContext = state => \r\n state.imageBrowserContext && state.imageBrowserContext.reloadChildrenContext\r\n && state.imageBrowserContext.reloadChildrenContext();\r\n// #endregion\r\n\r\n// #region oct color correction\r\nexport const toggleInverted = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleInverted\r\n && state.imageBrowserContext.toggleInverted();\r\nexport const toggleColorPalette = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleColorPalette\r\n && state.imageBrowserContext.toggleColorPalette();\r\nexport const toggleSegmentation = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleSegmentation\r\n && state.imageBrowserContext.toggleSegmentation();\r\nexport const toggleMeasuring = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleMeasuring\r\n && state.imageBrowserContext.toggleMeasuring();\r\nexport const setMeasurementIndex = (state, index) => {\r\n state.imageBrowserContext && state.imageBrowserContext.setMeasurementIndex\r\n && state.imageBrowserContext.setMeasurementIndex(index);\r\n};\r\nexport const toggleShowThicknessMap = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleShowThicknessMap\r\n && state.imageBrowserContext.toggleShowThicknessMap();\r\n// #endregion\r\n\r\n// #region cirrus settings\r\nexport const toggleHD = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleHD\r\n && state.imageBrowserContext.toggleHD();\r\nexport const centerFovea = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.centerFovea\r\n && state.imageBrowserContext.centerFovea();\r\nexport const toggleETDRS = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleETDRS\r\n && state.imageBrowserContext.toggleETDRS();\r\nexport const updateThicknessMapOpacity = (state, opacity) =>\r\n state.imageBrowserContext && state.imageBrowserContext.updateThicknessMapOpacity\r\n && state.imageBrowserContext.updateThicknessMapOpacity(opacity);\r\n// #endregion\r\n\r\n// #region oct multiview\r\nexport const toggleLocked = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleLocked\r\n && state.imageBrowserContext.toggleLocked();\r\nexport const toggleSegmentationCompare = (state, view) =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleSegmentationCompare\r\n && state.imageBrowserContext.toggleSegmentationCompare(view);\r\nexport const toggleMeasuringCompare = (state, view) =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleMeasuringCompare\r\n && state.imageBrowserContext.toggleMeasuringCompare(view);\r\nexport const setMeasurementIndexCompare = (state, { x, view }) =>\r\n state.imageBrowserContext && state.imageBrowserContext.setMeasurementIndexCompare\r\n && state.imageBrowserContext.setMeasurementIndexCompare(x, view);\r\nexport const toggleColorCompare = (state, view) =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleColorCompare\r\n && state.imageBrowserContext.toggleColorCompare(view);\r\nexport const toggleInvertedCompare = (state, view) =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleInvertedCompare\r\n && state.imageBrowserContext.toggleInvertedCompare(view);\r\nexport const pauseCompare = (state, view) =>\r\n state.imageBrowserContext && state.imageBrowserContext.pauseCompare\r\n && state.imageBrowserContext.pauseCompare(view);\r\nexport const setPlayRateCompare = (state, { view, rate }) =>\r\n state.imageBrowserContext && state.imageBrowserContext.setPlayRateCompare\r\n && state.imageBrowserContext.setPlayRateCompare(view, rate);\r\nexport const setPlayIntervalCompare = (state, { view, intervalId }) =>\r\n state.imageBrowserContext && state.imageBrowserContext.setPlayIntervalCompare\r\n && state.imageBrowserContext.setPlayIntervalCompare(view, intervalId);\r\nexport const toggleOverlayCompare = (state, view) =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleOverlayCompare\r\n && state.imageBrowserContext.toggleOverlayCompare(view);\r\nexport const updateOverlayOpacityCompare = (state, { view, opacity }) =>\r\n state.imageBrowserContext && state.imageBrowserContext.updateOverlayOpacityCompare\r\n && state.imageBrowserContext.updateOverlayOpacityCompare(view, opacity);\r\nexport const toggleETDRSCompare = (state, view) =>\r\n state.imageBrowserContext && state.imageBrowserContext.toggleETDRSCompare\r\n && state.imageBrowserContext.toggleETDRSCompare(view);\r\nexport const updateFoveaAlignment = (state, val) =>\r\n state.imageBrowserContext && state.imageBrowserContext.updateFoveaAlignment\r\n && state.imageBrowserContext.updateFoveaAlignment(val);\r\nexport const updateScanTypeFilter = (state, val) => \r\n state.imageBrowserContext && state.imageBrowserContext.updateScanTypeFilter\r\n && state.imageBrowserContext.updateScanTypeFilter(val);\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #region hvf\r\nexport const selectHVFExam = (state, { exam, index }) =>\r\n state.imageBrowserContext && state.imageBrowserContext.selectHVFExam(exam, index);\r\nexport const selectHVFEye = (state, eye) =>\r\n state.imageBrowserContext && state.imageBrowserContext.selectHVFEye(eye);\r\nexport const previousHVFImage = (state, index) =>\r\n state.imageBrowserContext && state.imageBrowserContext.previousHVFImage(index);\r\nexport const nextHVFImage = (state, index) =>\r\n state.imageBrowserContext && state.imageBrowserContext.nextHVFImage(index);\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #region loading queues\r\nexport const clearImageQueue = (state, queueKey) => {\r\n if (state[queueKey]) {\r\n state[queueKey].cancelled = true;\r\n state[queueKey].queue = null;\r\n state[queueKey] = null;\r\n }\r\n};\r\nexport const setImageQueue = (state, { queue, queueKey }) => {\r\n state[queueKey] = queue;\r\n};\r\nexport const purgeOldImages = (state, exceptImages) => {\r\n // Clear images from the normal image map, where they aren't for the currently open set of images\r\n const ieMax = 50, max = 250;\r\n let threshold = state.isIE ? ieMax : max;\r\n let images = state.imageMap.filter(image => image.imgObjectUrl);\r\n let imagesToPurge = images.filter(image => !exceptImages.includes(image));\r\n if ((images.length > threshold) && imagesToPurge.length) {\r\n imagesToPurge.forEach(clearImage);\r\n }\r\n};\r\nexport const purgeOldOCTImages = (state, exceptImages) => {\r\n let previews = state.octImageMap.filter(image => image.previewObjectUrl);\r\n previews.forEach(image => clearImage(image, \"preview\"));\r\n\r\n // Clear images from the octImageMap, where they aren't for the current exam or multiview group\r\n const ieMaxOCT = 400, maxOCT = 2000;\r\n let threshold = state.isIE ? ieMaxOCT : maxOCT;\r\n let images = state.octImageMap.filter(image => image.imgObjectUrl);\r\n let imagesToPurge = images.filter(image => !exceptImages.includes(image));\r\n\r\n if ((images.length > threshold) && imagesToPurge.length) {\r\n imagesToPurge.forEach(clearImage);\r\n }\r\n};\r\nfunction clearImage(image, prefix = \"img\") {\r\n const objUrlKey = prefix + \"ObjectUrl\", objKey = prefix + \"HtmlObject\";\r\n URL.revokeObjectURL(image[objUrlKey]);\r\n image[objUrlKey] = null;\r\n image[objKey] && (image[objKey].src = \"\");\r\n image[objKey] = null;\r\n}\r\n// #endregion\r\n\r\n// #region patient exam multiview browser\r\nexport const setPatientExamMultiviewContext = (state, context) =>\r\n state.patientExamMultiviewContext = context;\r\nexport const clearPatientExamMultiviewContext = state =>\r\n state.patientExamMultiviewContext = null;\r\nexport const selectEyeMultiview = (state, eye) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectEye(eye);\r\nexport const selectDevicesMultiview = (state, devices) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectDevices(devices);\r\nexport const selectAllDevicesMultiview = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectAllDevices();\r\nexport const selectDatesMultiview = (state, dates) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectDates(dates);\r\nexport const selectAllDatesMultiview = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectAllDates();\r\nexport const selectExamsMultiview = (state, exams) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectExams(exams);\r\nexport const selectAllExamsMultiview = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectAllExams();\r\nexport const selectImageMultiview = (state, image) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectImage(image);\r\nexport const refreshMultiview = (state, exams) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.refreshExams(exams);\r\nexport const removeImagesMultiview = (state, imgSrNos) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.removeImages(imgSrNos);\r\nexport const setCurrentExamsMultiview = (state, bounds) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.setCurrentExams(bounds);\r\nexport const resetMultiviewImages = (state, data) =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.resetImages(data);\r\nexport const toggleMultiviewCollapse = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.toggleCollapse();\r\n// #endregion\r\n\r\n// #region proofsheet\r\nexport const setProofsheetContext = (state, context) => {\r\n state.proofsheetContext = context;\r\n};\r\nexport const clearProofsheetContext = state => {\r\n state.proofsheetContext = null;\r\n};\r\nexport const selectFilterProofsheet = (state, option) =>\r\n state.proofsheetContext && state.proofsheetContext.setFilterOption(option);\r\nexport const selectEyeProofsheet = (state, eye) =>\r\n state.proofsheetContext && state.proofsheetContext.setEyeFilter(eye);\r\nexport const selectImageProofsheet = (state, image) =>\r\n state.proofsheetContext && state.proofsheetContext.selectImage(image);\r\nexport const selectAllProofsheet = state =>\r\n state.proofsheetContext && state.proofsheetContext.selectAllImages();\r\nexport const startDeleteImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.startDeleteImages();\r\nexport const cancelDeleteImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.cancelDeleteImages();\r\nexport const removeImagesProofsheet = (state, imgSrNos) =>\r\n state.proofsheetContext && state.proofsheetContext.removeImages(imgSrNos);\r\nexport const setActiveDownload = (state, { link, text }) => {\r\n state.activeDownload.link = link;\r\n state.activeDownload.text = text;\r\n};\r\nexport const cancelActiveDownload = state => {\r\n // todo - make a download files section\r\n state.activeDownload.link = null;\r\n state.activeDownload.text = null;\r\n};\r\nexport const startMarkImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.startMarkImages();\r\nexport const cancelMarkImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.cancelMarkImages();\r\nexport const updateImageLaterality = (state, { imgSrNos, eye }) => {\r\n state.imageMap.filter(i => imgSrNos.includes(i.flSrNo))\r\n .forEach(i => i.imgEye = eye);\r\n};\r\nexport const setCurrentImagesProofsheet = (state, bounds) =>\r\n state.proofsheetContext && state.proofsheetContext.setCurrentImages(bounds);\r\nexport const clearSelectedImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.clearSelectedImages();\r\n// #endregion\r\n\r\n// #region placeholder context for exam multiview buttons\r\nexport const setPlaceholderContext = state => {\r\n state.placeholderContext = new PlaceholderContext();\r\n};\r\nexport const clearPlaceholderContext = state => {\r\n state.placeholderContext = null;\r\n};\r\n// #endregion\r\n\r\n// #region overlay browser\r\nexport const openOverlay = (state, images) => {\r\n state.overlayContext = new OverlayBrowserContext(images);\r\n}\r\nexport const clearOverlay = state => state.overlayContext = null;\r\nexport const setLoadingMessage = (state, message) => {\r\n state.loadingMessage = message;\r\n if (message) disableAutologoutEvents();\r\n else setupAutologoutEvents();\r\n}\r\nexport const storeI2kImages = (state, images) => {\r\n if (!images || !images.length) return;\r\n for (let i = 0; i < images.length; i++) {\r\n let image = images[i];\r\n if (!state.i2kImages.some(i => i.imgKey === image.imgKey)) {\r\n image.imgNotFound = false;\r\n image.imgIsQueued = false;\r\n image.imgIsLoading = false;\r\n image.imgHtmlObject = null;\r\n image.imgObjectUrl = null;\r\n image.imgSize = defaultSize();\r\n\r\n state.i2kImages.push(image);\r\n }\r\n }\r\n};\r\nexport const setI2kImageState = (state, imageState) => {\r\n let image = state.i2kImages.find(i => i.imgKey === imageState.imgKey);\r\n if (!image) return;\r\n Object.assign(image, imageState);\r\n};\r\nexport const setOriginalOverlaySettings = (state, settings) => state.originalOverlaySettings = settings;\r\n// #endregion\r\n\r\n// #region stereo browser\r\nexport const setStereoContext = (state, context) => {\r\n state.stereoContext = context;\r\n};\r\nexport const clearStereoContext = state => {\r\n state.stereoContext = null;\r\n};\r\nexport const setStereoPair = (state, imagePair) => {\r\n state.stereoContext.selectedPair = imagePair;\r\n};\r\nexport const setStereoImagePairList = (state, pairs) => {\r\n state.stereoContext.imagePairs = pairs;\r\n};\r\n// #endregion\r\n\r\n// #region print preview browser\r\nexport const setPrintPreviewContext = (state, context) => {\r\n state.printPreviewContext = context;\r\n};\r\nexport const clearPrintPreviewContext = state => {\r\n state.printPreviewContext = null;\r\n};\r\nexport const togglePrintPreviewHeaders = state => {\r\n state.printPreviewContext.displayHeader = !state.printPreviewContext.displayHeader;\r\n};\r\nexport const setPrintPreviewImagesPerPage = (state, num) => {\r\n state.printPreviewContext.imagesPerSheet = num;\r\n};\r\nexport const setPrintPreviewPageLayout = (state, layout) => {\r\n state.printPreviewContext.pageLayout = layout;\r\n};\r\nexport const incrementPrintPreviewCurrentPage = state => {\r\n state.printPreviewContext.currentPage++;\r\n};\r\nexport const decrementPrintPreviewCurrentPage = state => {\r\n state.printPreviewContext.currentPage--;\r\n};\r\nexport const startPrinting = state => {\r\n state.printPreviewContext.isPrinting = true;\r\n}\r\nexport const stopPrinting = state => {\r\n state.printPreviewContext.isPrinting = false;\r\n}\r\nexport const togglePrintPreviewIsPrinting = (state) => {\r\n state.printPreviewContext.isPrinting = !state.printPreviewContext.isPrinting;\r\n};\r\n\r\nexport const startLoadingAppPrintImages = state => {\r\n state.isLoadingAppPrintImages = true;\r\n}\r\nexport const finishedLoadingAppPrintImages = state => {\r\n state.isLoadingAppPrintImages = false;\r\n}\r\n\r\nexport const setPrintPreviewSheetNum = (state, num) => {\r\n state.printPreviewContext.sheetNum = num;\r\n if (state.printPreviewContext.currentPage > num)\r\n state.printPreviewContext.currentPage = num;\r\n};\r\nexport const setPrintPreviewImageNum = (state, num) => {\r\n state.printPreviewContext.imageNum = num;\r\n};\r\n// #endregion\r\n\r\n// #region side by side browser\r\nexport const setSideBySideContext = (state, context) => {\r\n state.sideBySideContext = context;\r\n};\r\nexport const clearSideBySideContext = state => {\r\n state.sideBySideContext = null;\r\n};\r\nexport const toggleSideBySideAnnotation = (state) => {\r\n state.sideBySideContext.displayAnnotation = !state.sideBySideContext.displayAnnotation;\r\n};\r\nexport const setSideBySideImageBrowser = (state, payload) => {\r\n if (payload.isLeft) state.sideBySideContext.leftContext = payload.context;\r\n else state.sideBySideContext.rightContext = payload.context;\r\n payload.context.startupTask();\r\n};\r\nexport const setSideBySideImageBrowserContextImage = (state, payload) => {\r\n if (payload.isLeft && state.sideBySideContext.leftContext.selectImage)\r\n state.sideBySideContext.leftContext.selectImage(payload.image);\r\n else state.sideBySideContext.rightContext.selectImage(payload.image);\r\n};\r\nexport const toggleSideBySideSync = (state) => {\r\n state.sideBySideContext.sync = !state.sideBySideContext.sync;\r\n state.sideBySideContext.leftContext.clearActiveAnnotation();\r\n state.sideBySideContext.leftContext.clearAnnotationMode();\r\n state.sideBySideContext.rightContext.clearActiveAnnotation();\r\n state.sideBySideContext.rightContext.clearAnnotationMode();\r\n};\r\nexport const syncAnnotations = (state) => {\r\n let rightContext = state.sideBySideContext.rightContext;\r\n let leftContext = state.sideBySideContext.leftContext;\r\n rightContext.imageColorSettings = leftContext.imageColorSettings;\r\n rightContext.isDragLock = leftContext.isDragLock;\r\n rightContext.annotationColor = leftContext.annotationColor;\r\n let annotations = [];\r\n leftContext.annotations.forEach(e => {\r\n if (!annotations.includes(e)) {\r\n let annotation = deepCopyAnnotation(e);\r\n annotations.push(annotation);\r\n if (annotation.duplicateAndSyncAnnotation)\r\n annotation.duplicateAndSyncAnnotation(e);\r\n }\r\n });\r\n rightContext.annotations = annotations;\r\n rightContext.flattenedImageReady = leftContext.flattenedImageReady = false;\r\n};\r\nfunction recreateBaseAnnotation(original) {\r\n let type = original.constructor;\r\n let position = { ...original.originalPosition };\r\n let options = { ...original.options };\r\n return new type(position, options);\r\n}\r\nfunction deepCopyAnnotation(original) {\r\n return deepCopyObject(original, recreateBaseAnnotation(original));\r\n}\r\nfunction deepCopyPlainObject(original) {\r\n return deepCopyObject(original, {});\r\n}\r\nfunction deepCopyArray(original) {\r\n var copy = new Array(original.length);\r\n for (let i = 0; i < original.length; i++)\r\n deepCopyProperty(i, original, copy);\r\n return copy;\r\n}\r\nfunction deepCopyObject(original, copy) {\r\n for (const key in original)\r\n deepCopyProperty(key, original, copy);\r\n return copy;\r\n}\r\nfunction deepCopyProperty(key, original, copy) {\r\n let value = original[key];\r\n // do nothing for functions\r\n if (isFunction(value))\r\n return;\r\n\r\n // primitive case\r\n let copiedValue = value;\r\n if (Array.isArray(value)) {\r\n // handle array\r\n copiedValue = deepCopyArray(value);\r\n } else if (value instanceof Annotation) {\r\n // handle sub annotation\r\n copiedValue = deepCopyAnnotation(value);\r\n } else if (Object(value) === value) {\r\n // handle plain object\r\n copiedValue = deepCopyPlainObject(value);\r\n }\r\n copy[key] = copiedValue;\r\n}\r\nfunction isFunction(obj) {\r\n return !!(obj && obj.constructor && obj.call && obj.apply);\r\n}\r\nexport const desyncAnnotations = (state) => {\r\n state.sideBySideContext.rightContext.imageColorSettings = Object.assign({}, state.sideBySideContext.leftContext.imageColorSettings);\r\n let rightAnnotations = state.sideBySideContext.rightContext.annotations;\r\n let leftAnnotations = state.sideBySideContext.leftContext.annotations;\r\n clearSyncState(rightAnnotations);\r\n clearSyncState(leftAnnotations);\r\n};\r\nfunction clearSyncState(annotations) {\r\n for (let i = 0; i < annotations.length; i++) {\r\n if (\"syncPair\" in annotations[i]) annotations[i].syncPair = null;\r\n }\r\n}\r\nexport const syncAnnotationText = (state) => {\r\n if (state.textAnnotationToEdit && state.textAnnotationToEdit.syncText)\r\n state.textAnnotationToEdit.syncText();\r\n};\r\n// #endregion\r\n\r\n// #region browser stack\r\nexport const addToBrowserStack = (state, context) => {\r\n state.browserStack.push(context);\r\n};\r\nexport const popBrowserStack = (state) => {\r\n state.browserStack.pop();\r\n};\r\nexport const setOpenedExams = (state, exams) => {\r\n state.openedExams = [...exams];\r\n};\r\n// #endregion\r\n\r\n// #region help\r\nexport const openHelpDialog = state => state.showHelpDialog = true;\r\nexport const closeHelpDialog = state => state.showHelpDialog = false;\r\n// #endregion\r\n\r\n// #region video viewer modal\r\nexport const openVideoViewer = (state, viewer) => state.videoViewer = viewer;\r\nexport const clearVideoViewer = state => state.videoViewer = null;\r\n// #endregion\r\n\r\n// #region deepdee dialog\r\nexport const openDeepDeeDialog = state => state.showDeepDeeDialog = true;\r\nexport const closeDeepDeeDialog = state => state.showDeepDeeDialog = false;\r\n\r\n// #region knowledge center settings\r\nexport const setKnowledgeCenterSettings = (state, settings) => {\r\n state.knowledgeCenterSettings = settings;\r\n};\r\nexport const clearKnowledgeCenterSettings = state => state.knowledgeCenterSettings = {};\r\n\r\nexport const setVideoLibrary = (state, library) => {\r\n state.videoLibrary = library;\r\n};\r\nexport const clearVideoLibrary = state => state.videoLibrary = [];\r\n\r\nexport const setKnowledgeCenterVideoSrc = (state, src) => {\r\n state.knowledgeCenterVideoSrc = src;\r\n}\r\nexport const clearKnowledgeCenterVideoSrc = state => state.knowledgeCenterVideoSrc = null;\r\n\r\nexport const setBestPracticesEntries = (state, src) => {\r\n state.bestPracticesEntries = src;\r\n}\r\nexport const clearBestPracticesEntries = state => state.bestPracticesEntries = [];","import { addMode, editMode, deleteMode, magnifyMode, USER_DESIG, EyeTypes, ANNOTATION_COLORS, DEFAULT_VIEW_TYPE, EYES_ORDER_TYPE, COLOR_TYPE, shapeFillMode } from \"../config/config\";\r\nimport { canSaveBlobs } from \"../helpers/blobsaver\";\r\n\r\nexport const windowWidth = state => state.windowWidth;\r\nexport const widthXs = (state, getters) => getters.windowWidth < 600;\r\nexport const widthSm = (state, getters) => getters.windowWidth >= 600 && getters.windowWidth < 960;\r\nexport const widthMd = (state, getters) => getters.windowWidth >= 960 && getters.windowWidth < 1264;\r\nexport const widthLg = (state, getters) => getters.windowWidth >= 1264 && getters.windowWidth < 1904;\r\nexport const widthXl = (state, getters) => getters.windowWidth >= 1904;\r\nexport const widthLandscape = (state, getters) => getters.windowWidth <= 1024;\r\nexport const widthTablet = (state, getters) => getters.windowWidth <= 1700;\r\nexport const windowHeight = state => state.windowHeight;\r\nexport const heightXs = (state, getters) => getters.windowHeight < 500;\r\nexport const heightSm = (state, getters) => getters.windowHeight >= 500 && getters.windowHeight < 701;\r\nexport const heightMd = (state, getters) => getters.windowHeight >= 701 && getters.windowHeight < 900;\r\nexport const heightLg = (state, getters) => getters.windowHeight >= 900;\r\nexport const belowMobileCutoff = (state, getters) =>\r\n getters.windowWidth < 700 || getters.windowHeight < 600;\r\n\r\n// #region auth\r\nexport const allowUnsecuredSSO = state => state.allowUnsecuredSSO;\r\nexport const auth = state => state.auth;\r\nexport const isAuthenticated = state => !!(state.auth && state.auth.access_token);\r\nexport const user = state => state && state.auth && state.auth.user;\r\nexport const userFullName = (state, getters) =>\r\n getters.user ? getters.user.FName + \" \" + getters.user.LName : \"\";\r\nexport const deptName = (state, getters) => getters.user && getters.user.Dept;\r\nexport const userDesig = (state, getters) => getters.user && getters.user.Desig;\r\nexport const userIsAdmin = (state, getters) => getters.userDesig === USER_DESIG.Admin;\r\nexport const userIsAttdMD = (state, getters) => getters.userDesig === USER_DESIG.AttdMD;\r\nexport const userIsRefMD = (state, getters) => getters.userDesig === USER_DESIG.RefMD;\r\nexport const userIsPhotographer = (state, getters) => getters.userDesig === USER_DESIG.Photographer;\r\nexport const userIsUser = (state, getters) => getters.userDesig === USER_DESIG.User;\r\nexport const userIsViewOnly = (state, getters) => getters.userDesig === USER_DESIG.ViewOnly;\r\nexport const userIsReadOnly = (state, getters) => getters.userDesig === USER_DESIG.ReadOnly;\r\nexport const canAnnotate = (state, getters) => !getters.userIsRefMD;\r\nexport const canDownload = (state, getters) => !getters.isOpenedInApp && canSaveBlobs;\r\nexport const canDownloadExam = (state, getters) => getters.canDownload && (getters.userIsAdmin || getters.userIsPhotographer || getters.userIsUser || getters.userIsAttdMD);\r\nexport const canDelete = (state, getters) => getters.userIsAdmin || getters.userIsPhotographer;\r\nexport const canEditPathology = (state, getters) => getters.userIsAdmin || getters.userIsPhotographer || getters.userIsUser || getters.userIsAttdMD;\r\nexport const usrSrNo = (state, getters) => getters.user && getters.user.usrSrNo;\r\nexport const usrMustChangePwd = (state, getters) => getters.user && getters.user.ChangePWDMust;\r\nexport const hideUserPref = (state, getters) => getters.user && getters.user.UserPrefMenu;\r\nexport const isIdle = state => state.isIdle;\r\nexport const disableAutoLogout = state => state.disableAutoLogout;\r\nexport const backgroundTimestamp = state => state.backgroundTimestamp;\r\nexport const refreshTokenExpirationTime = state => state.auth && state.auth.expires_time;\r\nexport const MfaEnabled = state => state.mfa.enabled;\r\nexport const MfaSecret = state => state.mfa.secret;\r\nexport const userPrefs = state => state.userPrefs;\r\nexport const userPrefsFullscreen = state => state.userPrefs && state.userPrefs.fullscreen && state.userPrefs.fullscreen == 1;\r\nexport const userPrefHVF = state => state.userPrefs && state.userPrefs.defaultHVF;\r\nexport const userPrefCirrusView = state => state.userPrefs && state.userPrefs.defaultCirrusView;\r\nexport const userPrefBlackAndWhiteCirrusView = state => state.userPrefs && state.userPrefs.defaultCirrusView == COLOR_TYPE.blackWhite;\r\nexport const userPracticeGroupIds =(state, getters) => getters.user ? getters.user.PracticeGroupId : []; \r\nexport const userAutoPatientExamRefresh = state => state.userPrefs && state.userPrefs.autoPatientExamRefresh;\r\nexport const hvfOrder = (state, getters) => {\r\n if (getters.userPrefHVF != null) return getters.userPrefHVF == EYES_ORDER_TYPE.OS_OD ? true : false;\r\n return getters.useDefaultHvf;\r\n}\r\nexport const defaultHVFVIEW = (state, getters) =>{\r\n if(getters.userPrefs.defaultHVFview)\r\n return getters.userPrefs.defaultHVFview;\r\n else if(getters.siteInfo.siteDefaultHVFview !== \"\")\r\n return getters.siteInfo.siteDefaultHVFview;\r\n else return DEFAULT_VIEW_TYPE.singleView;\r\n}\r\nexport const defaultColorTheme = state => state.userPrefs && state.userPrefs.defaultColorTheme;\r\nexport const multiviewCollapseUserPref = state => state.userPrefs && state.userPrefs.multiviewCollapse;\r\nexport const cirrusScanDisplayRatio = state => state.userPrefs && state.userPrefs.cirrusScanDisplayRatio;\r\nexport const calledFullscreenToggle = state => state.calledFullscreenToggle;\r\n// #endregion\r\n\r\nexport const isOpenedInApp = state => state.isOpenedInApp;\r\nexport const isIE = state => state.isIE;\r\nexport const isIOS = state => state.isIOS;\r\nexport const isSafari = state => state.isSafari;\r\nexport const hasWebgl = state => state.hasWebgl;\r\nexport const webglMaxTexture = state => state.webglMaxTexture;\r\nexport const isFullscreen = state => state.isFullscreen;\r\n\r\nexport const statusMessage = state => state.status && state.status.message;\r\nexport const statusLevel = state => state.status && state.status.level;\r\nexport const statusTimeout = state => state.status && state.status.timeout;\r\n\r\nexport const physicians = state => state.physicians;\r\nexport const devices = state => state.devices;\r\nexport const deviceLogs = state => state.deviceLogs;\r\nexport const devTypes = state =>{\r\n let list = [];\r\n state.devices.forEach(e =>{\r\n if(e.description.toLowerCase().indexOf(\"hiddendev\") === -1 && !list.some(el => el.value === e.type)){\r\n list.push({value:e.type, text:e.type});\r\n }\r\n });\r\n return list;\r\n};\r\nexport const devLocations = state => state.devLocations;\r\nexport const deviceBySrNo = state => devSrNo => state.devices.find(d => d.devSrNo === devSrNo);\r\nexport const procedures = state => state.procedures;\r\nexport const practiceGroupsList = state => state.practiceGroupsList;\r\nexport const userList = state => state.userList;\r\n\r\nexport const siteInfo = state => state.siteInfo;\r\nexport const defaultPatientListing = state => state.siteInfo.defaultPatientListing;\r\nexport const axisTitle = state => state.siteInfo && state.siteInfo.axisTitle;\r\nexport const preLoadFullImage = state => state.siteInfo && state.siteInfo.preloadLargeViewImages;\r\nexport const preLoadOption = state => state.siteInfo && state.siteInfo.preLoadOption;\r\nexport const autoLogoutTimer = state => state.siteInfo && state.siteInfo.userInactivityTimeLimit;\r\nexport const allowUISSO = state => state.siteInfo && state.siteInfo.allowUISSO;\r\nexport const axis5Version = state => state.siteInfo && state.siteInfo.axis5Version;\r\nexport const onlineHelp = state => state.siteInfo && state.siteInfo.onlineHelp;\r\nexport const useDefaultHvf = state => state.siteInfo && state.siteInfo.useDefaultHvf;\r\nexport const autoRefreshPatientList = state => state.siteInfo && state.siteInfo.autoRefreshPatientList;\r\nexport const isActDirEnabled = state => state.isActDirEnabled;\r\nexport const exLnchEnabled = state => state.siteInfo.exLnchEnabled;\r\nexport const exLnchTitle = state => state.siteInfo.exLnchTitle;\r\nexport const exLnchURL = state => state.siteInfo.exLnchURL;\r\nexport const axis5DefaultFontSize = state => state.siteInfo && state.siteInfo.axis5DefaultFontSize;\r\nexport const enableSavingWithEmrPro = state => state.siteInfo && state.siteInfo.enableSavingWithEmrPro;\r\nexport const restrictInIE = state => state.siteInfo.restrictInIE; \r\nexport const multiviewCollapseByDefault = state => state.siteInfo.multiviewCollapseByDefault;\r\nexport const downloadPNGImage = state => state.siteInfo.downloadPNGImage;\r\nexport const siteCirrusScanDisplayRatio = state => state.siteInfo.cirrusScanDisplayRatio;\r\nexport const userLockoutEnabled = state => state.siteInfo.userLockoutEnabled;\r\nexport const userLockoutDuration = state => state.siteInfo.userLockoutDuration;\r\nexport const userFailedLoginAttempts = state => state.siteInfo.userFailedLoginAttempts;\r\nexport const userFailedLoginAttemptsReset = state => state.siteInfo.userFailedLoginAttemptsReset;\r\n\r\n// #region patient search\r\nexport const searchTimespan = state => state.patientSearch.timespan;\r\nexport const searchKeyword = state => state.patientSearch.keyword;\r\nexport const patientSearch = state => state.patientSearch;\r\nexport const advancedSearchDialog = state => state.advancedSearchDialog;\r\nexport const wasEmrPro = state => state.wasEmrPro;\r\nexport const ssoSearch = state => state.ssoSearch;\r\nexport const ssoExType = (state, getters) => getters.ssoSearch && getters.ssoSearch.extype;\r\nexport const ssoExDate = (state, getters) => getters.ssoSearch && getters.ssoSearch.exdate;\r\nexport const ssoExSrNo = (state, getters) => getters.ssoSearch && getters.ssoSearch.exsrno;\r\nexport const ssoEmrPro = (state, getters) => ((getters.ssoSearch && getters.ssoSearch.emrpro) + \"\").toLowerCase() === \"true\" || getters.wasEmrPro;\r\nexport const patientSearchOptions = state => state.patientSearchOptions;\r\nexport const emrProSearchParams = state => state.emrProSearchParams;\r\nexport const emrProExSrNo = state => state.emrProSearchParams && state.emrProSearchParams.exsrno;\r\n// #endregion\r\n\r\nexport const patients = state => state.patients;\r\nexport const totalPatients = state => state.totalPatients;\r\nexport const loadingPatients = state => state.loadingPatients;\r\nexport const patient = state => state.patient;\r\nexport const ptSrNo = state => state.patient && state.patient.ptSrNo;\r\nexport const ptId = state => state.patient && state.patient.ptId;\r\nexport const ptSex = state => state.patient && state.patient.gender;\r\n\r\n// #region exams\r\nexport const exams = state => state.exams || [];\r\nexport const selectedExams = state => state.selectedExams || [];\r\nexport const visualFieldExams = (state, getters) => {\r\n let list = getters.exams.filter(e => {\r\n let device = getters.devices.find(d => d.devSrNo == e.devSrNo);\r\n let description = device.description.toLowerCase();\r\n return description.includes(\"visual field\") || description.includes(\"hvf\")\r\n });\r\n return list; \r\n}\r\nexport const loadingExams = state => state.loadingExams;\r\nexport const examBySrNo = state => exSrNo => state.exams.find(e => e.exSrNo === exSrNo);\r\nexport const octExams = (state, getters) => state.exams\r\n .filter(e => e.isOCT && e.isScans)\r\n .filter(e => getters.currentEye === EyeTypes.OD || e.osGroups.length)\r\n .filter(e => getters.currentEye === EyeTypes.OS || e.odGroups.length);\r\n \r\nfunction generateExamsFromGroup(exam, groupKey, groups) {\r\n let newExam, results = [];\r\n exam[groupKey].forEach(e => {\r\n if (groups.filter(f => f.groupSeriesType == e.groupSeriesType).length > 0) {\r\n newExam = Object.assign({}, exam);\r\n newExam.scanType = e.scanType;\r\n if (e.browserType != 1)\r\n newExam.octDateButtonText = exam.dateDisplay + \" - \" + e.eye + \" \" + e.groupSeriesType + \" (\" + exam.exSrNo + \")\";\r\n else\r\n newExam.octDateButtonText = exam.dateDisplay + \" - \" + e.groupSeriesType + \" (\" + exam.exSrNo + \")\";\r\n newExam[groupKey] = [e];\r\n results.push(newExam);\r\n }\r\n });\r\n return results;\r\n}\r\n\r\nexport const octExamsWithScanTypes = (state, getters) => {\r\n let exams, filteredExams, groupSplitExams = [];\r\n exams = getters.octExams;\r\n let groupkey = getters.currentEye === \"OD\" ? \"odGroups\" : \"osGroups\";\r\n filteredExams = exams.filter(function(item, index) {\r\n if (exams.indexOf(item) == index)\r\n return item;\r\n });\r\n filteredExams.forEach(e => {\r\n let groups = getters.groups(e, getters.currentEye);\r\n if (getters.groups(e, getters.currentEye).length > 1) {\r\n groupSplitExams.push(...generateExamsFromGroup(e, groupkey, groups));\r\n }\r\n else {\r\n if (!e.octDateButtonText.includes(getters.groups(e, getters.currentEye)[0].groupSeriesType))\r\n e.octDateButtonText = e.dateDisplay + \" - \" + getters.groups(e, getters.currentEye, getters.currentOCTBrowserType, 0)[0].groupSeriesType + \" (\" + e.exSrNo + \")\";\r\n e.scanType = getters.groups(e, getters.currentEye)[0].scanType;\r\n groupSplitExams.push(e);\r\n }\r\n });\r\n return groupSplitExams;\r\n}\r\n\r\nexport const currentOCTExam = (state, getters) => {\r\n let groups = getters.currentEye === \"OD\" ? getters.exam.odGroups : getters.exam.osGroups;\r\n let recognized = groups.filter(g => g.recognized)\r\n .filter(g => !getters.currentGroup || g.groupName === getters.currentGroup);\r\n if (getters.dropdownItems)\r\n return getters.dropdownItems.find(e => e.exSrNo === getters.exSrNo && e.octDateButtonText.includes(recognized[0].groupSeriesType));\r\n return null;\r\n};\r\n\r\nexport const selectedDropdownItem = state => state.imageBrowserContext && state.imageBrowserContext.selectedDropdownItem;\r\n\r\nexport const examToDelete = state => state.examToDelete;\r\nexport const examToDownload = state => state.examToDownload;\r\nexport const examsToDelete = state => state.examsToDelete;\r\nexport const examToEditPhysician = state => state.examToEditPhysician;\r\nexport const examToEditDiagnosis = state => state.examToEditDiagnosis;\r\nexport const examToEdit = state => state.examToEdit;\r\n// #endregion\r\n\r\nexport const imageMap = state => state.imageMap;\r\nexport const imageByKey = state => imgKey => state.imageMap.find(i => i.imgKey === imgKey);\r\nexport const imagesByExSrNo = state => exSrNo => state.imageMap.filter(i => i.exSrNo === exSrNo);\r\nexport const imagesByPtSrNo = state => ptSrNo => state.imageMap.filter(i => i.ptSrNo === ptSrNo);\r\nexport const imagesForExams = state => exams => state.imageMap.filter(image => exams.some(exam => exam.exSrNo === image.exSrNo));\r\nexport const imageByFlSrNo= state => flSrNo => state.imageMap.find(i => i.flSrNo === flSrNo);\r\n\r\nexport const imagesOrderByExSrNo = state => exSrNo => state.imageOrder.filter(i => i.exSrNo === exSrNo);\r\n\r\nexport const octImagesForCurrentBrowser = (state, getters) =>\r\n state.octImageMap.filter(i => i.exSrNo === getters.exSrNo\r\n && i.groupName === getters.currentGroup);\r\n\r\n// #region image browser context\r\nexport const imageBrowserContext = state => state.imageBrowserContext;\r\nexport const exam = state => state.imageBrowserContext && state.imageBrowserContext.exam;\r\nexport const exSrNo = state => state.imageBrowserContext && state.imageBrowserContext.exSrNo;\r\nexport const isOptos = (state, getters) => getters.exam && getters.exam.isOptos;\r\nexport const browserImages = (state, getters) => getters.imageBrowserContext && getters.imageBrowserContext.images || [];\r\nexport const showMeasurementSection = state => state.imageBrowserContext && state.imageBrowserContext.showMeasurementSection;\r\nexport const showPlaybackToolbar = state => state.imageBrowserContext && state.imageBrowserContext.showPlaybackToolbar;\r\nexport const showImageDrawer = state => state.imageBrowserContext && state.imageBrowserContext.showImageDrawer;\r\nexport const imageTransform = state => state.imageBrowserContext && state.imageBrowserContext.transform;\r\nexport const maxZoom = state => state.imageBrowserContext && state.imageBrowserContext.transform && state.imageBrowserContext.transform.maxZoom;\r\nexport const deepDeeHighlight = state => state.imageBrowserContext && state.imageBrowserContext.deepDeeHighlight;\r\nexport const deepDeeAnnotation = state => state.imageBrowserContext && state.imageBrowserContext.deepDeeAnnotation;\r\nexport const showDeepDeeAnnotation = state => state.imageBrowserContext && state.imageBrowserContext.showDeepDeeAnnotation;\r\nexport const seriesType = state => state.imageBrowserContext && state.imageBrowserContext.seriesType;\r\n\r\n// #region current image and thumbnail\r\nexport const currentBrowserImage = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.image;\r\nexport const imgNotFound = (state, getters) =>\r\n !!(getters.currentBrowserImage && getters.currentBrowserImage.imgNotFound);\r\nexport const imgAvailable = (state, getters) =>\r\n !!(getters.currentBrowserImage && !getters.currentBrowserImage.imgNotFound);\r\nexport const hasFullImage = (state, getters) =>\r\n !!(getters.imgSize && getters.imgSize.w && getters.imgSize.h);\r\nexport const imgObject = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.imgHtmlObject;\r\nexport const thumbObject = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.thumbHtmlObject;\r\nexport const displayImgObject = (state, getters) =>\r\n getters.hasFullImage ? getters.imgObject : getters.thumbObject;\r\nexport const thumbSize = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.thumbSize;\r\nexport const imgSize = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.imgSize;\r\nexport const displayImgSize = (state, getters) =>\r\n getters.hasFullImage ? getters.imgSize : getters.thumbSize;\r\nexport const flippedImgSize = (state, getters) =>\r\n getters.hasFullImage ? {w: getters.imgSize.h, h: getters.imgSize.w} : {w: getters.thumbSize.h, h: getters.thumbSize.w};\r\nexport const displayIsFullImage = (state, getters) => !!(getters.imgObject && getters.imgSize);\r\nexport const imgIsLoading = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.imgIsLoading;\r\nexport const thumbIsLoading = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.thumbIsLoading;\r\nexport const imgEye = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.imgEye;\r\nexport const imgTimestamp = (state, getters) =>\r\n getters.currentBrowserImage && getters.currentBrowserImage.imgTimeStamp;\r\nexport const imgMask = (state, getters) => \r\n getters.currentBrowserImage && getters.imageBrowserContext.imageMask;\r\n// #endregion\r\n\r\n// #region playback\r\nexport const imageIndex = (state, getters) => {\r\n if (getters.browserImages.length && getters.currentBrowserImage)\r\n return getters.browserImages.findIndex(v => v.imgKey == getters.currentBrowserImage.imgKey);\r\n return 0;\r\n};\r\nexport const isPlaying = state => !!(state.imageBrowserContext && state.imageBrowserContext.playIntervalId);\r\nexport const playRate = state => state.imageBrowserContext && state.imageBrowserContext.playRate;\r\n// #endregion\r\n\r\n// #region annotations\r\nexport const isAnnotating = state => state.imageBrowserContext && state.imageBrowserContext.isAnnotating;\r\nexport const annotationMode = state => state.imageBrowserContext && state.imageBrowserContext.annotationMode;\r\nexport const annotationColor = state => state.imageBrowserContext && state.imageBrowserContext.annotationColor;\r\nexport const isDragLock = state => state.imageBrowserContext && state.imageBrowserContext.isDragLock;\r\nexport const inAddMode = (state, getters) => addMode(getters.annotationMode);\r\nexport const inEditMode = (state, getters) => editMode(getters.annotationMode);\r\nexport const inDeleteMode = (state, getters) => deleteMode(getters.annotationMode);\r\nexport const inMagnifyMode = (state, getters) => magnifyMode(getters.annotationMode);\r\nexport const isMagnifying = state => state.imageBrowserContext && state.imageBrowserContext.isMagnifying;\r\nexport const inShapeFillMode = (state, getters) => shapeFillMode(getters.annotationMode);\r\nexport const annotations = state => state.imageBrowserContext && state.imageBrowserContext.annotations;\r\nexport const activeAnnotation = state => state.imageBrowserContext && state.imageBrowserContext.activeAnnotation;\r\nexport const activeIsContinuous = (state, getters) =>\r\n getters.activeAnnotation && getters.activeAnnotation.isContinuous;\r\nexport const annotationByPosition = state => ({ x, y }) =>\r\n state.imageBrowserContext && state.imageBrowserContext.annotations\r\n && state.imageBrowserContext.annotations.find(a => a.isInBounds(x, y));\r\nexport const annotationIndex = state => annotation =>\r\n state.imageBrowserContext && state.imageBrowserContext.annotations\r\n && state.imageBrowserContext.annotations.findIndex(a => a == annotation);\r\nexport const annotationOptions = state => {\r\n let context = state.imageBrowserContext;\r\n return {\r\n textSize: context && context.annotationTextSize || 40,\r\n lineWidth: context && context.annotationLineWidth || 5,\r\n color: context && context.annotationColor || ANNOTATION_COLORS.White,\r\n scale: context && context.deviceCalibration && context.deviceCalibration.value,\r\n transform: context && context.transform\r\n };\r\n};\r\nexport const selectedTextSize = state => state.imageBrowserContext && state.imageBrowserContext.annotationTextSize;\r\nexport const textAnnotationToEdit = state => state.textAnnotationToEdit;\r\nexport const magnifier = state => state.imageBrowserContext && state.imageBrowserContext.magnifier;\r\n\r\nexport const shapeOutlineContext = state => state.shapeOutlineContext;\r\nexport const isShapeOutlineOpen = state => !!state.shapeOutlineContext;\r\nexport const shapeOutlineSyncContext = state => state.shapeOutlineSyncContext;\r\n\r\nexport const shapeFillContext = state => state.shapeFillContext;\r\nexport const isShapeFillOpen = state => !!state.shapeFillContext;\r\nexport const shapeFillSyncContext = state => state.shapeFillSyncContext;\r\n// #endregion\r\n\r\n// #region transformations\r\nexport const isFlipped = state => state.imageBrowserContext && state.imageBrowserContext.isFlipped;\r\nexport const isFlipped90 = state => state.imageBrowserContext && state.imageBrowserContext.isFlipped90;\r\n// #endregion\r\n\r\n// #region color settings\r\nexport const imageColorSettings = state => state.imageBrowserContext && state.imageBrowserContext.imageColorSettings;\r\nexport const grayscaleMode = (state, getters) => getters.imageColorSettings && getters.imageColorSettings.grayscaleMode;\r\nexport const brightness = (state, getters) => getters.imageColorSettings && getters.imageColorSettings.brightness;\r\nexport const contrast = (state, getters) => getters.imageColorSettings && getters.imageColorSettings.contrast;\r\nexport const gamma = (state, getters) => getters.imageColorSettings && getters.imageColorSettings.gamma;\r\nexport const greenBrightness = (state, getters) => getters.imageColorSettings && getters.imageColorSettings.greenBrightness;\r\nexport const greenContrast = (state, getters) => getters.imageColorSettings && getters.imageColorSettings.greenContrast;\r\n// #endregion\r\n\r\n// #region memory canvases\r\nexport const webglCanvas = state => state.imageBrowserContext && state.imageBrowserContext.webglCanvas;\r\nexport const saveCanvas = state => state.imageBrowserContext && state.imageBrowserContext.saveCanvas;\r\nexport const flattenedImageReady = state => state.imageBrowserContext && state.imageBrowserContext.flattenedImageReady;\r\n// #endregion\r\n\r\n// #region device configurations\r\nexport const deviceConfigs = state => state.imageBrowserContext && state.imageBrowserContext.deviceConfigs;\r\nexport const hasDeviceConfigs = (state, getters) => getters.deviceConfigs.length;\r\nexport const deviceCalibrations = (state, getters) => getters.deviceConfigs.filter(v => v.type === \"magVal\");\r\nexport const hasDeviceCalibrations = (state, getters) => getters.deviceCalibrations.length;\r\nexport const deviceCalibration = state => state.imageBrowserContext && state.imageBrowserContext.deviceCalibration;\r\n// #endregion\r\n\r\n// #region rgb-view\r\nexport const rgbSettings = state => state.imageBrowserContext && state.imageBrowserContext.rgbSettings;\r\nexport const rgbView = (state, getters) => !!getters.rgbSettings;\r\nexport const rgbIndexByMode = (state, getters) => mode => getters.rgbView && state.imageBrowserContext.getRGBIndex(mode);\r\nexport const rgbSync = (state, getters) => getters.rgbView && getters.rgbSettings.sync;\r\nexport const greenSync = (state, getters) => getters.rgbView && getters.rgbSettings.greenSync;\r\nexport const rgbExpanded = (state, getters) => getters.rgbView && getters.rgbSettings.expanded;\r\nexport const rgbViews = (state, getters) => getters.rgbView && getters.rgbSettings.views || [];\r\nexport const currentRGBView = (state, getters) => getters.rgbView && getters.rgbSettings.views[getters.rgbSettings.view];\r\nexport const currentRGBIndex = (state, getters) => getters.rgbView && getters.rgbSettings.view;\r\nexport const rgbViewByIndex = (state, getters) => index => getters.rgbView && getters.rgbSettings.views[index];\r\nexport const rgbViewsNotMatchingMain = (state, getters) => {\r\n if (!getters.rgbView) return [];\r\n let main = state.imageBrowserContext.imageColorSettings;\r\n return state.imageBrowserContext.rgbSettings.views\r\n .filter(view => {\r\n return view.brightness !== main.brightness\r\n || view.contrast !== main.contrast\r\n || view.gamma !== main.gamma;\r\n }) || [];\r\n};\r\n// #endregion\r\n\r\n// #region oct\r\nexport const octDataLoading = state => state.imageBrowserContext && state.imageBrowserContext.octDataLoading;\r\nexport const currentGroup = state => state.imageBrowserContext && state.imageBrowserContext.groupName;\r\nexport const currentEye = state => state.imageBrowserContext && state.imageBrowserContext.eye;\r\nexport const currentOCTBrowserType = state => state.imageBrowserContext && state.imageBrowserContext.browserType;\r\nexport const eyeGroups = (state, getters) => {\r\n if (!getters.exam || !getters.currentEye) return [];\r\n return getters.groups(getters.exam, getters.currentEye);\r\n};\r\nexport const showHD = state => state.imageBrowserContext && state.imageBrowserContext.showHD;\r\nexport const showETDRS = state => state.imageBrowserContext && state.imageBrowserContext.showETDRS;\r\nexport const foveaOffset = state => state.imageBrowserContext && state.imageBrowserContext.foveaOffset;\r\n\r\nexport const thicknessAnalysis = state => state.imageBrowserContext && state.imageBrowserContext.thicknessAnalysis;\r\nexport const centerAverageThickness = (state, getters) => getters.thicknessAnalysis && getters.thicknessAnalysis.centerAverageThickness;\r\nexport const overallVolume = (state, getters) => getters.thicknessAnalysis && getters.thicknessAnalysis.overallVolume;\r\nexport const overallAverageThickness = (state, getters) => getters.thicknessAnalysis && getters.thicknessAnalysis.overallAverageThickness;\r\n\r\nexport const showSegmentation = state => state.imageBrowserContext && state.imageBrowserContext.showSegmentation;\r\nexport const isMeasuring = state => state.imageBrowserContext && state.imageBrowserContext.isMeasuring;\r\nexport const measureData = state => state.imageBrowserContext && state.imageBrowserContext.measureData;\r\nexport const isBothMeasuring = state => state.imageBrowserContext && state.imageBrowserContext.bothMeasuring;\r\nexport const showThicknessMap = state => state.imageBrowserContext && state.imageBrowserContext.showThicknessMap;\r\nexport const drawAllSlices = state => state.imageBrowserContext && state.imageBrowserContext.drawAllSlices;\r\nexport const showSpectralisThicknessMapButton = state => state.imageBrowserContext && state.imageBrowserContext.groupName && (state.imageBrowserContext.groupName.toLowerCase().includes(\"volume\") || state.imageBrowserContext.groupName.toLowerCase().includes(\"cube\"));\r\nexport const spectralisScanTypes = state => state.imageBrowserContext && state.imageBrowserContext.examTypes;\r\nexport const spectralisScanTypeFilter = state => state.imageBrowserContext && state.imageBrowserContext.scanTypeFilter;\r\n\r\nexport const octDropdownItems = state => state.imageBrowserContext && state.imageBrowserContext.dropdownItems;\r\n\r\n// #region reference image\r\nexport const referenceImage = state => state.imageBrowserContext && state.imageBrowserContext.referenceImage;\r\nexport const refImg = (state, getters) => getters.referenceImage && getters.referenceImage.imgHtmlObject;\r\nexport const refImgNotFound = (state, getters) =>\r\n !!(getters.referenceImage && getters.referenceImage.imgNotFound);\r\nexport const refImgLoading = (state, getters) => getters.referenceImage\r\n && (getters.referenceImage.imgIsLoading || getters.referenceImage.imgIsQueued);\r\nexport const refImgLocation = state => (x, y) => {\r\n if (!state.imageBrowserContext\r\n || !state.imageBrowserContext.refImgLocation) return { x: -1, y: -1 };\r\n return state.imageBrowserContext.refImgLocation(x, y);\r\n};\r\n// #endregion\r\n\r\n// #region thickness map\r\nexport const relativeMapSize = state => state.imageBrowserContext && state.imageBrowserContext.relativeMapSize;\r\nexport const thicknessMapOpacity = state => state.imageBrowserContext && state.imageBrowserContext.thicknessMapOpacity;\r\nexport const thicknessMap = state => state.imageBrowserContext && state.imageBrowserContext.thicknessMap;\r\nexport const thicknessMapImg = (state, getters) => getters.thicknessMap && getters.thicknessMap.imgHtmlObject;\r\nexport const thicknessMapPalette = state => state.imageBrowserContext && state.imageBrowserContext.thicknessMapPalette;\r\nexport const thicknessMapMinThicknessUm = state => state.imageBrowserContext && state.imageBrowserContext.thicknessMapMinThicknessUm;\r\nexport const thicknessMapMaxThicknessUm = state => state.imageBrowserContext && state.imageBrowserContext.thicknessMapMaxThicknessUm;\r\nexport const thicknessMapThicknessStepUm = state => state.imageBrowserContext && state.imageBrowserContext.thicknessMapThicknessStepUm;\r\nexport const thicknessMapColorSettings = state => state.imageBrowserContext && state.imageBrowserContext.thicknessMapColorSettings;\r\nexport const thicknessDifference = state => state.imageBrowserContext && state.imageBrowserContext.thicknessDifference;\r\n// #endregion\r\n\r\n// #region enface image\r\nexport const enfaceImage = state => state.imageBrowserContext && state.imageBrowserContext.enfaceImage;\r\nexport const enfaceImg = (state, getters) => getters.enfaceImage && getters.enfaceImage.imgHtmlObject;\r\nexport const enfaceImgSize = state => state.imageBrowserContext && state.imageBrowserContext.enfaceImgSize;\r\nexport const enfaceImgNotFound = (state, getters) => !!(getters.enfaceImage && getters.enfaceImage.imgNotFound);\r\nexport const enfaceImgLoading = (state, getters) => getters.enfaceImage\r\n && (getters.enfaceImage.imgIsLoading || getters.enfaceImage.imgIsQueued);\r\n// #endregion\r\n\r\n// #region slices\r\nexport const getSlices = state => (keyword, exSrNo, groupName) => {\r\n if (!exSrNo) exSrNo = state.imageBrowserContext.exSrNo;\r\n if (!groupName) groupName = state.imageBrowserContext.groupName;\r\n return state.imageBrowserContext && state.octImageMap.filter(i =>\r\n i.exSrNo === exSrNo && i.groupName === groupName && i.keyword === keyword) || [];\r\n};\r\n\r\n// #region slice\r\nexport const slices = (state, getters) => getters.getSlices(\"slice\");\r\nexport const sliceInfo = state => state.imageBrowserContext && state.imageBrowserContext.sliceInfo;\r\nexport const sliceCurrent = state => state.imageBrowserContext && state.imageBrowserContext.sliceCurrent;\r\nexport const sliceCurrentIndex = (state, getters) => getters.sliceCurrent && getters.sliceCurrent.index;\r\nexport const sliceCurrentEyeMarker = (state, getters) => getters.sliceCurrent && getters.sliceCurrent.eyeMarker;\r\nexport const sliceBounds = state => state.imageBrowserContext && state.imageBrowserContext.sliceBounds;\r\n\r\nexport const sliceImgObject = (state, getters) => getters.sliceCurrent && getters.sliceCurrent.imgHtmlObject;\r\nexport const slicePreviewObject = (state, getters) => getters.sliceCurrent && getters.sliceCurrent.previewHtmlObject;\r\n\r\nexport const sliceImg = (state, getters) => getters.sliceImgObject || getters.slicePreviewObject;\r\nexport const sliceImgNotFound = (state, getters) => \r\n !!(getters.sliceCurrent && getters.sliceCurrent.imgNotFound);\r\nexport const sliceImgLoading = (state, getters) => getters.sliceCurrent && (getters.sliceCurrent.imgIsLoading || getters.sliceCurrent.imgIsQueued);\r\n\r\nexport const sliceHasSegmentation = (state, getters) => getters.sliceInfo && getters.sliceInfo.sliceHasSegmentation;\r\nexport const sliceSegmentationIsLoading = (state, getters) => getters.sliceCurrent && (getters.sliceCurrent.sliceSegmentationIsLoading || getters.sliceCurrent.segmentationIsQueued);\r\nexport const sliceSegmentationLayerData = (state, getters) => getters.sliceCurrent && getters.sliceCurrent.sliceSegmentationLayerData;\r\nexport const sliceSegmentationThicknessData = (state, getters) => getters.sliceCurrent && getters.sliceCurrent.sliceSegmentationThicknessData;\r\n// #endregion\r\n\r\n// #region composite\r\nexport const composites = (state, getters) => getters.getSlices(\"composite\");\r\nexport const compositeInfo = state => state.imageBrowserContext && state.imageBrowserContext.compositeInfo;\r\nexport const compositeCurrent = state => state.imageBrowserContext && state.imageBrowserContext.compositeCurrent;\r\nexport const compositeCurrentIndex = (state, getters) => getters.compositeCurrent && getters.compositeCurrent.index;\r\nexport const compositeCurrentEyeMarker = (state, getters) => getters.compositeCurrent && getters.compositeCurrent.eyeMarker;\r\nexport const compositeBounds = state => state.imageBrowserContext && state.imageBrowserContext.compositeBounds;\r\n\r\nexport const compositeImgObject = (state, getters) => getters.compositeCurrent && getters.compositeCurrent.imgHtmlObject;\r\nexport const compositePreviewObject = (state, getters) => getters.compositeCurrent && getters.compositeCurrent.previewHtmlObject;\r\n\r\nexport const compositeImg = (state, getters) => getters.compositeImgObject || getters.compositePreviewObject;\r\nexport const compositeImgNotFound = (state, getters) => !!(getters.compositeCurrent && getters.compositeCurrent.imgNotFound);\r\nexport const compositeImgLoading = (state, getters) => getters.compositeCurrent && (getters.compositeCurrent.imgIsLoading || getters.compositeCurrent.imgIsQueued);\r\n\r\nexport const compositeHasSegmentation = (state, getters) => getters.compsiteSliceInfo && getters.compsiteSliceInfo.sliceHasSegmentation;\r\nexport const compositeSegmentationIsLoading = (state, getters) => getters.compositeCurrent && (getters.compositeCurrent.sliceSegmentationIsLoading || getters.compositeCurrent.segmentationIsQueued);\r\nexport const compositeSegmentationLayerData = (state, getters) => getters.compositeCurrent && getters.compositeCurrent.sliceSegmentationLayerData;\r\n// #endregion\r\n\r\n// #region hdVert\r\nexport const hdVerts = (state, getters) => getters.getSlices(\"hdVert\");\r\nexport const hdVertInfo = state => state.imageBrowserContext && state.imageBrowserContext.hdVertInfo;\r\nexport const hdVertCurrent = state => state.imageBrowserContext && state.imageBrowserContext.hdVertCurrent;\r\nexport const hdVertCurrentIndex = (state, getters) => getters.hdVertCurrent && getters.hdVertCurrent.index;\r\n\r\nexport const hdVertImg = (state, getters) => getters.hdVertCurrent && getters.hdVertCurrent.imgHtmlObject;\r\nexport const hdVertImgNotFound = (state, getters) => !!(getters.hdVertCurrent && getters.hdVertCurrent.imgNotFound);\r\nexport const hdVertImgLoading = (state, getters) => getters.hdVertCurrent && (getters.hdVertCurrent.imgIsLoading || getters.hdVertCurrent.imgIsQueued);\r\n\r\nexport const hdVertHasSegmentation = (state, getters) => getters.hdVertInfo && getters.hdVertInfo.sliceHasSegmentation;\r\nexport const hdVertSegmentationIsLoading = (state, getters) => getters.hdVertCurrent && (getters.hdVertCurrent.sliceSegmentationIsLoading || getters.hdVertCurrent.segmentationIsQueued);\r\nexport const hdVertSegmentationLayerData = (state, getters) => getters.hdVertCurrent && getters.hdVertCurrent.sliceSegmentationLayerData;\r\n// #endregion\r\n\r\n// #region hdHorz\r\nexport const hdHorzs = (state, getters) => getters.getSlices(\"hdHorz\");\r\nexport const hdHorzInfo = state => state.imageBrowserContext && state.imageBrowserContext.hdHorzInfo;\r\nexport const hdHorzCurrent = state => state.imageBrowserContext && state.imageBrowserContext.hdHorzCurrent;\r\nexport const hdHorzCurrentIndex = (state, getters) => getters.hdHorzCurrent && getters.hdHorzCurrent.index;\r\n\r\nexport const hdHorzImg = (state, getters) => getters.hdHorzCurrent && getters.hdHorzCurrent.imgHtmlObject;\r\nexport const hdHorzImgNotFound = (state, getters) => !!(getters.hdHorzCurrent && getters.hdHorzCurrent.imgNotFound);\r\nexport const hdHorzImgLoading = (state, getters) => getters.hdHorzCurrent && (getters.hdHorzCurrent.imgIsLoading || getters.hdHorzCurrent.imgIsQueued);\r\n\r\nexport const hdHorzHasSegmentation = (state, getters) => getters.hdHorzInfo && getters.hdHorzInfo.sliceHasSegmentation;\r\nexport const hdHorzSegmentationIsLoading = (state, getters) => getters.hdHorzCurrent && (getters.hdHorzCurrent.sliceSegmentationIsLoading || getters.hdHorzCurrent.segmentationIsQueued);\r\nexport const hdHorzSegmentationLayerData = (state, getters) => getters.hdHorzCurrent && getters.hdHorzCurrent.sliceSegmentationLayerData;\r\n\r\nexport const hasHD = state => state.hdHorzs && state.hdVerts && state.hdHorzs.length != 0 && state.hdVerts.length != 0;\r\n// #endregion\r\n\r\n// #region cscans\r\nexport const cscans = (state, getters) => getters.getSlices(\"cscan\");\r\nexport const cscanInfo = state => state.imageBrowserContext && state.imageBrowserContext.cscanInfo;\r\nexport const cscanCurrent = state => state.imageBrowserContext && state.imageBrowserContext.cscanCurrent;\r\nexport const cscanCurrentIndex = (state, getters) => getters.cscanCurrent && getters.cscanCurrent.index;\r\n\r\nexport const cscanImg = (state, getters) => getters.cscanCurrent && getters.cscanCurrent.imgHtmlObject;\r\nexport const cscanImgNotFound = (state, getters) => !!(getters.cscanCurrent && getters.cscanCurrent.imgNotFound);\r\nexport const cscanImgLoading = (state, getters) => getters.cscanCurrent && (getters.cscanCurrent.imgIsLoading || getters.cscanCurrent.imgIsQueued);\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #region color correction\r\nexport const octColorSettings = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.octColorSettings;\r\nexport const isInverted = (state, getters) =>\r\n getters.octColorSettings && getters.octColorSettings.isInverted;\r\nexport const hasColorPalette = (state, getters) =>\r\n getters.octColorSettings && !!getters.octColorSettings.colorPalette;\r\n// #endregion\r\n\r\n// #region comparison multiview\r\nexport const getOCTImagesForMultiview = (state, getters) => {\r\n let baseline_exSrNo = getters.baseline_exSrNo, baseline_groupName = getters.baseline_groupName,\r\n compare_exSrNo = getters.compare_exSrNo, compare_groupName = getters.compare_groupName;\r\n\r\n return state.octImageMap.filter(i =>\r\n ((i.exSrNo === compare_exSrNo && i.groupName === compare_groupName)\r\n || (i.exSrNo === baseline_exSrNo && i.groupName === baseline_groupName))\r\n && (i.imageType !== \"composite\" && i.imageType !== \"hidef\"));\r\n};\r\nexport const isComparisonContext = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.isComparisonContext;\r\nexport const isLocked = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.isLocked;\r\nexport const showFoveaAlignControl = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.showFoveaAlignControl;\r\nexport const alignFoveas = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.alignFoveas;\r\nexport const preferredBrowserType = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.preferredBrowserType;\r\nexport const lockEnabled = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.lockEnabled;\r\nexport const octExamsSameType = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.exams || [];\r\nexport const groups = () => (exam, eye, allowedTypes, preferredType) => {\r\n let groups = eye === EyeTypes.OD ? exam.odGroups : exam.osGroups;\r\n groups.forEach(e => e.groupSeriesType = e.groupSeriesType.replace(\"Star\", \"Radial\"));\r\n return [...groups].filter(g => g.recognized &&\r\n (!allowedTypes || !allowedTypes.length || allowedTypes.includes(g.browserType)))\r\n .sort((a, b) => {\r\n let aPreferred = a.browserType === preferredType;\r\n let bPreferred = b.browserType === preferredType;\r\n if (aPreferred === bPreferred) return 0;\r\n if (aPreferred) return -1;\r\n return 1;\r\n });\r\n};\r\nexport const comparisonSameType = (state, getters) =>\r\n getters.baseline_browserType === getters.compare_browserType;\r\nexport const isSpectralisComparison = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.isSpectralisComparison;\r\n// #region baseline\r\nexport const baseline = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.baseline;\r\nexport const baseline_loading = (state, getters) =>\r\n getters.baseline && getters.baseline.octDataLoading;\r\nexport const baseline_reference = (state, getters) => getters.baseline && getters.baseline.referenceImage;\r\nexport const baseline_refImg = (state, getters) =>\r\n getters.baseline_reference && getters.baseline_reference.imgHtmlObject;\r\nexport const baselineTime = (state, getters) => getters.baseline && getters.baseline.seriesMoment;\r\nexport const baselineExams = (state, getters) => {\r\n if (getters.compare && (getters.compare.componentName == \"cirrusComparisonView\" || getters.compare.componentName == \"rasterComparisonView\"))\r\n return getters.octExamsSameType\r\n .filter(e => e.exSrNo != getters.compare.exam.exSrNo && e.moment < getters.compare.examMoment);\r\n return getters.octExamsSameType\r\n .filter(e => !getters.compare || (e.scanType != getters.compare.exam.scanType || e.exSrNo != getters.compare.exam.exSrNo) && (e.moment <= getters.compare.seriesMoment && e.moment <= getters.compare.examMoment));\r\n}\r\nexport const baselineGroups = (state, getters) => {\r\n if (!getters.baseline || !getters.baseline.exam) return [];\r\n return getGroups(getters, getters.baseline.exam);\r\n};\r\nfunction getGroups(getters, exam) {\r\n return getters.groups(exam, getters.currentEye, getters.currentOCTBrowserType, getters.preferredBrowserType);\r\n}\r\nexport const baseline_slices = (state, getters) =>\r\n getters.baseline && getters.getSlices(\"slice\", getters.baseline_exSrNo, getters.baseline_groupName);\r\nexport const baseline_sliceInfo = (state, getters) =>\r\n getters.baseline && getters.baseline.sliceInfo;\r\nexport const baseline_sliceCurrent = (state, getters) =>\r\n getters.baseline && getters.baseline.sliceCurrent;\r\nexport const baseline_sliceImg = (state, getters) =>\r\n getters.baseline_sliceCurrent && getters.baseline_sliceCurrent.imgHtmlObject;\r\nexport const baseline_thicknessMap = (state, getters) =>\r\n getters.baseline && getters.baseline.thicknessMap;\r\nexport const baseline_thicknessMapImg = (state, getters) =>\r\n getters.baseline_thicknessMap && getters.baseline_thicknessMap.imgHtmlObject;\r\nexport const baseline_showOverlay = (state, getters) =>\r\n getters.baseline && getters.baseline.showOverlay;\r\nexport const baseline_exSrNo = (state, getters) =>\r\n getters.baseline && getters.baseline.exSrNo;\r\nexport const baseline_groupName = (state, getters) =>\r\n getters.baseline && getters.baseline.groupName;\r\nexport const baseline_exam = (state, getters) =>\r\n getters.baseline && getters.baseline.exam;\r\nexport const baseline_browserType = (state, getters) =>\r\n getters.baseline && getters.baseline.browserType;\r\nexport const baseline_dropdownItems = (state, getters) => \r\n getters.baseline && getters.baseline.dropdownItems;\r\nexport const baseline_selectedDropdownItem = (state, getters) => \r\n getters.baseline && getters.baseline.selectedDropdownItem;\r\n// #endregion\r\n\r\n// #region compare\r\nexport const compare = state =>\r\n state.imageBrowserContext && state.imageBrowserContext.compare;\r\nexport const compare_loading = (state, getters) =>\r\n getters.compare && getters.compare.octDataLoading;\r\nexport const compare_reference = (state, getters) => getters.compare && getters.compare.referenceImage;\r\nexport const compare_refImg = (state, getters) =>\r\n getters.compare_reference && getters.compare_reference.imgHtmlObject;\r\nexport const compareExams = (state, getters) => getters.octExamsSameType;\r\nexport const compareGroups = (state, getters) => {\r\n if (!getters.compare || !getters.compare.exam) return [];\r\n return getGroups(getters, getters.compare.exam);\r\n};\r\n\r\nexport const compare_slices = (state, getters) =>\r\n getters.compare && getters.getSlices(\"slice\", getters.compare_exSrNo, getters.compare_groupName);\r\nexport const compare_sliceInfo = (state, getters) =>\r\n getters.compare && getters.compare.sliceInfo;\r\nexport const compare_sliceCurrent = (state, getters) =>\r\n getters.compare && getters.compare.sliceCurrent;\r\nexport const compare_sliceImg = (state, getters) =>\r\n getters.compare_sliceCurrent && getters.compare_sliceCurrent.imgHtmlObject;\r\nexport const compare_thicknessMap = (state, getters) =>\r\n getters.compare && getters.compare.thicknessMap;\r\nexport const compare_thicknessMapImg = (state, getters) =>\r\n getters.compare_thicknessMap && getters.compare_thicknessMap.imgHtmlObject;\r\nexport const compare_showOverlay = (state, getters) =>\r\n getters.compare && getters.compare.showOverlay;\r\nexport const compare_exSrNo = (state, getters) =>\r\n getters.compare && getters.compare.exSrNo;\r\nexport const compare_groupName = (state, getters) =>\r\n getters.compare && getters.compare.groupName;\r\nexport const compare_browserType = (state, getters) =>\r\n getters.compare && getters.compare.browserType;\r\nexport const compare_dropdownItems = (state, getters) => \r\n getters.compare && getters.compare.dropdownItems;\r\nexport const compare_selectedDropdownItem = (state, getters) => \r\n getters.compare && getters.compare.selectedDropdownItem;\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #region hvf\r\nexport const hvfExams = state => state.imageBrowserContext && state.imageBrowserContext.exams;\r\nexport const hvfEye = state => state.imageBrowserContext && state.imageBrowserContext.eyeFilter;\r\nexport const hvfView = state => state.imageBrowserContext && state.imageBrowserContext.view;\r\nexport const hvfIndex = (state, getters) => getters.hvfView && getters.hvfView.index;\r\nexport const hvfImageCount = (state, getters) => getters.hvfView && (getters.hvfView.maxIndex + 1) || 0;\r\nexport const hvfOSImages = (state, getters) => getters.hvfView && getters.hvfView.osImages;\r\nexport const hvfOSImage = (state, getters) => getters.hvfView && getters.hvfView.osImage;\r\nexport const hvfODImages = (state, getters) => getters.hvfView && getters.hvfView.odImages;\r\nexport const hvfODImage = (state, getters) => getters.hvfView && getters.hvfView.odImage;\r\n// #endregion\r\n\r\n// #region hvf multiview\r\nexport const hvfViews = state => state.imageBrowserContext && state.imageBrowserContext.views || [];\r\n// #endregion\r\n\r\n// #endregion\r\n\r\n// #region image loading queue\r\nexport const imageQueue = state => state.imageQueue;\r\nexport const octFullQueue = state => state.octFullQueue;\r\nexport const octPreviewQueue = state => state.octPreviewQueue;\r\nexport const octSegmentationQueue = state => state.octSegmentationQueue;\r\n// #endregion\r\n\r\n// #region patient exam multiview\r\nexport const patientExamMultiviewContext = state => state.patientExamMultiviewContext;\r\nexport const multiviewEye = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.currentEye;\r\nexport const deviceFilter = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.deviceFilter || [];\r\nexport const dateFilter = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.dateFilter || [];\r\nexport const deviceList = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.deviceList || [];\r\nexport const dateList = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.dateList || [];\r\nexport const patientExamMultiviewImageObjects = state =>\r\n state.patientExamMultiviewImageObjects;\r\nexport const multiviewExams = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.exams || [];\r\nexport const filteredMultiviewExams = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.filteredExams || [];\r\nexport const currentMultiviewExams = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.currentExams || [];\r\nexport const selectedMultiviewExams = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectedExams || [];\r\nexport const multiviewAllExamsSelected = state => {\r\n if (!state.patientExamMultiviewContext) return false;\r\n return state.patientExamMultiviewContext.exams.length === state.patientExamMultiviewContext.selectedExams.length;\r\n};\r\nexport const multiviewImages = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.images || [];\r\nexport const filteredmultiviewImages = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.filteredImages || [];\r\nexport const currentMultiviewImages = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.currentImages || [];\r\nexport const selectedMultiviewImages = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.selectedImages || [];\r\nexport const multiviewImagesByExSrNo = (state, getters) =>\r\n exSrNo => getters.multiviewImages.filter(i => i.exSrNo === exSrNo);\r\nexport const imageIsSelectedInMultiview = (state, getters) =>\r\n image => getters.selectedMultiviewImages.includes(image);\r\nexport const filteredMultiviewImagesByExSrNo = (state, getters) =>\r\n exSrNo => getters.filteredmultiviewImages.filter(i => i.exSrNo === exSrNo);\r\nexport const multiviewIsCollapsed = state =>\r\n state.patientExamMultiviewContext && state.patientExamMultiviewContext.isCollapsed;\r\n// #endregion\r\n\r\n// #region proofsheet context\r\nexport const proofsheetContext = state =>\r\n state.proofsheetContext;\r\nexport const proofsheetFilterOption = state =>\r\n state.proofsheetContext && state.proofsheetContext.filterOption;\r\nexport const proofsheetShowAll = (state, getters) =>\r\n getters.proofsheetFilterOption === \"All Images\";\r\nexport const proofsheetEyeFilter = state =>\r\n state.proofsheetContext && state.proofsheetContext.currentEye;\r\nexport const proofsheetImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.images || [];\r\nexport const filteredProofsheetImages = (state, getters) =>\r\n{\r\n if (getters.proofsheetShowAll)\r\n return state.proofsheetContext && state.proofsheetContext.filteredImages || [];\r\n return getters.selectedProofsheetImages;\r\n}\r\nexport const currentProofsheetImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.currentImages || [];\r\nexport const selectedProofsheetImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.selectedImages || [];\r\nexport const imageIsSelectedInProofsheet = (state, getters) => image =>\r\n getters.selectedProofsheetImages.includes(image);\r\nexport const proofsheetAllSelected = (state) =>\r\nstate.proofsheetContext && state.proofsheetContext.allSelected;\r\nexport const isDeletingImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.isDeletingImages;\r\nexport const proofsheetImagesToDelete = (state, getters) =>\r\n (getters.isDeletingImages && getters.selectedProofsheetImages) || [];\r\nexport const activeDownloadText = state =>\r\n state.activeDownload.text;\r\nexport const activeDownloadLink = state =>\r\n state.activeDownload.link;\r\nexport const isMarkingImages = state =>\r\n state.proofsheetContext && state.proofsheetContext.isMarkingImages;\r\nexport const proofsheetImagesToMark = (state, getters) =>\r\n (getters.isMarkingImages && getters.selectedProofsheetImages) || [];\r\n// #endregion\r\n\r\n// #region placeholder context for exam multiview buttons\r\nexport const placeholderContext = state => state.placeholderContext;\r\n// #endregion\r\n\r\n// #region overlay context\r\nexport const overlayContext = state => state.overlayContext;\r\nexport const previousOverlayImages = state => state.originalOverlaySettings && state.originalOverlaySettings.sourceImages || [];\r\nexport const addingImagesForOverlay = state => !!state.originalOverlaySettings;\r\nexport const loadingMessage = state => state.loadingMessage;\r\nexport const i2kImageByKey = state => key => state.i2kImages.find(i => i.imgKey === key);\r\nexport const i2kImagesByFlSrNos = state => flSrNos => state.i2kImages.filter(i => i.flSrNos === flSrNos);\r\n// #endregion\r\n\r\n// #region stereo context\r\nexport const stereoContext = state => state.stereoContext;\r\nexport const stereoImagePairs = state => state.stereoContext && state.stereoContext.imagePairs || [];\r\nexport const stereoSelectedPair = state => state.stereoContext && state.stereoContext.selectedPair;\r\n// #endregion\r\n\r\n// #region print preview context\r\nexport const printPreviewContext = state => state.printPreviewContext;\r\nexport const printPreviewPageLayout = state => state.printPreviewContext && state.printPreviewContext.pageLayout;\r\nexport const printPreviewDisplayHeader = state => state.printPreviewContext && state.printPreviewContext.displayHeader;\r\nexport const printPreviewImagesPerSheet = state => state.printPreviewContext && state.printPreviewContext.imagesPerSheet;\r\nexport const printPreviewCurrentPage = state => state.printPreviewContext && state.printPreviewContext.currentPage;\r\nexport const printPreviewIsPrinting = state => state.printPreviewContext && state.printPreviewContext.isPrinting;\r\nexport const printPreviewSheetNum = state => state.printPreviewContext && state.printPreviewContext.sheetNum;\r\nexport const printPreviewImageNum = state => state.printPreviewContext && state.printPreviewContext.imageNum;\r\nexport const printPreviewImages = state => state.printPreviewContext && state.printPreviewContext.images || [];\r\n\r\nexport const isLoadingAppPrintImages = state => state.isLoadingAppPrintImages;\r\n// #endregion\r\n\r\n// #region side by side context\r\nexport const sideBySideContext = state => state.sideBySideContext;\r\nexport const sideBySideDisplayAnnotation = state => state.sideBySideContext && state.sideBySideContext.displayAnnotation;\r\nexport const sideBySideIsSynced = state => state.sideBySideContext && state.sideBySideContext.sync;\r\nexport const sideBySideCanSync = (state, getters) => {\r\n let context = getters.sideBySideContext;\r\n if (!context) return false;\r\n if (!context.leftContext\r\n || !context.leftContext.image\r\n || !context.leftContext.image.imgSize) return false;\r\n if (!context.rightContext\r\n || !context.rightContext.image\r\n || !context.rightContext.image.imgSize) return false;\r\n\r\n let leftSize = context.leftContext.image.imgSize;\r\n let rightSize = context.rightContext.image.imgSize;\r\n return leftSize.w === rightSize.w && leftSize.h === rightSize.h;\r\n};\r\n\r\nexport const sideBySideLeftContext = state => state.sideBySideContext && state.sideBySideContext.leftContext;\r\nexport const sideBySideLeftExSrNo = (_, getters) => getters.sideBySideLeftContext && getters.sideBySideLeftContext.exSrNo;\r\nexport const sideBySideLeftImage = (_, getters) => getters.sideBySideLeftContext && getters.sideBySideLeftContext.image;\r\nexport const sideBySideLeftImages = (_, getters) => getters.sideBySideLeftContext && getters.sideBySideLeftContext.images || [];\r\nexport const sideBySideLeftIndex = (_, getters) => {\r\n if (!getters.sideBySideLeftImage) return 0;\r\n return getters.sideBySideLeftImages.findIndex(v => v.imgKey == getters.sideBySideLeftImage.imgKey);\r\n};\r\nexport const sideBySideLeftEye = (_, getters) => {\r\n let context = getters.sideBySideLeftContext;\r\n let image = context && context.image;\r\n return image && image.imgEye;\r\n}\r\n\r\nexport const sideBySideLeftTimestamp = (_, getters) => {\r\n let context = getters.sideBySideLeftContext;\r\n let image = context && context.image;\r\n return image && image.imgTimeStamp;\r\n}\r\n\r\nexport const sideBySideRightContext = state => state.sideBySideContext && state.sideBySideContext.rightContext;\r\nexport const sideBySideRightExSrNo = (_, getters) => getters.sideBySideRightContext && getters.sideBySideRightContext.exSrNo;\r\nexport const sideBySideRightImage = (_, getters) => getters.sideBySideRightContext && getters.sideBySideRightContext.image;\r\nexport const sideBySideRightImages = (_, getters) => getters.sideBySideRightContext && getters.sideBySideRightContext.images || [];\r\nexport const sideBySideRightIndex = (_, getters) => {\r\n if (!getters.sideBySideRightImage) return 0;\r\n return getters.sideBySideRightImages.findIndex(v => v.imgKey == getters.sideBySideRightImage.imgKey);\r\n};\r\nexport const sideBySideRightEye = (_, getters) => {\r\n let context = getters.sideBySideRightContext;\r\n let image = context && context.image;\r\n return image && image.imgEye;\r\n}\r\n\r\nexport const sideBySideRightTimestamp = (_, getters) => {\r\n let context = getters.sideBySideRightContext;\r\n let image = context && context.image;\r\n return image && image.imgTimeStamp;\r\n}\r\n// #endregion\r\n\r\n// #region browser stack\r\nexport const browserStack = state => state.browserStack;\r\nexport const topBrowser = state => state.browserStack.length ? state.browserStack[state.browserStack.length - 1] : null;\r\nexport const imagesForOpenExams = (state, getters) => getters.imagesForExams(state.openedExams);\r\nexport const openedExams = state => state.openedExams;\r\n// #endregion\r\n\r\n// #region video viewer\r\nexport const videoViewer = state => state.videoViewer;\r\nexport const videoPtSrNo = state => state.videoViewer && state.videoViewer.ptSrNo;\r\nexport const videoExSrNo = state => state.videoViewer && state.videoViewer.exSrNo;\r\nexport const videoFileName = state => state.videoViewer && encodeURIComponent(state.videoViewer.imgData);\r\nexport const videoEye = state => state.videoViewer && state.videoViewer.imgEye;\r\n// #endregion\r\n\r\n// #region knowledge center\r\nexport const knowledgeCenterSettings = state => state.knowledgeCenterSettings;\r\nexport const videoLibrary = state => state.videoLibrary;\r\nexport const knowledgeCenterVideoSrc = state => state.knowledgeCenterVideoSrc;\r\nexport const isKnowledgeCenterVideo = state => state.knowledgeCenterVideoSrc != null;\r\nexport const bestPracticesEntries = state => state.bestPracticesEntries;","// setup axios global interceptors\r\nimport axios from \"axios\";\r\nimport { logDetailed } from \"../helpers/utils\";\r\n\r\nlogDetailed(\"axiosSetup\", \"root\", \"setting up axios\");\r\n\r\naxios.defaults.baseURL = window.apiBaseURL || \"/\";\r\naxios.defaults.withCredentials = true;\r\naxios.defaults.headers.get[\"Cache-Control\"] = \"no-cache\";\r\naxios.defaults.headers.get[\"Pragma\"] = \"no-cache\";\r\naxios.defaults.headers.get[\"Expires\"] = \"0\";\r\n\r\naxios.interceptors.request.use(logApiRequest)\r\naxios.interceptors.response.use(logSuccessfulApiResponse, logFailedApiResponse);\r\n\r\nfunction logApiRequest(req) {\r\n logDetailed(\"actions\", \"logApiRequest\", { method: req.method, url: req.url });\r\n return req;\r\n}\r\n\r\nfunction logSuccessfulApiResponse(res) {\r\n logDetailed(\"actions\", \"logSuccessfulApiResponse\",\r\n { method: res.config.method, url: res.config.url, status: res.status, statusText: res.config.statusText });\r\n return res;\r\n}\r\n\r\nfunction logFailedApiResponse(res) {\r\n logDetailed(\"actions\", \"logFailedApiResponse\",\r\n { method: res.config.method, url: res.config.url, status: res.status, statusText: res.config.statusText });\r\n return Promise.reject(res);\r\n}","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport state from \"./state\";\r\nimport * as otherActions from \"./actions/actions\";\r\nimport * as authActions from \"./actions/authActions\";\r\nimport * as getPatientExamActions from \"./actions/getPatientExamActions\";\r\nimport * as getHelpCenterActions from \"./actions/getHelpCenterActions\";\r\nimport * as getImageActions from \"./actions/getImageActions\";\r\nimport * as multiviewActions from \"./actions/multiviewActions\";\r\nimport * as proofsheetActions from \"./actions/proofsheetActions\";\r\nimport * as deepDeeActions from \"./actions/deepDeeActions.js\"\r\nimport * as mutations from \"./mutations\";\r\nimport * as getters from \"./getters\";\r\nimport { logDetailed } from \"../helpers/utils\";\r\nimport \"./axiosSetup\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n state,\r\n actions: {\r\n ...otherActions, ...authActions, ...getPatientExamActions, ...getHelpCenterActions,\r\n ...getImageActions, ...multiviewActions, ...proofsheetActions, ...deepDeeActions\r\n },\r\n mutations,\r\n getters\r\n});\r\n\r\nstore.subscribe((mutation, state) => {\r\n let localState = { \r\n userPrefs: state.userPrefs,\r\n mfa: state.mfa,\r\n physicians: state.physicians,\r\n devices: state.devices,\r\n procedures: state.procedures,\r\n ssoSearch: state.ssoSearch,\r\n emrProSearchParams: state.emrProSearchParams,\r\n wasEmrPro: state.wasEmrPro\r\n };\r\n let json = JSON.stringify(localState);\r\n sessionStorage.setItem(\"store\", json);\r\n});\r\n\r\nwindow.addEventListener(\"storage\", function(e){\r\n logDetailed(\"index\", \"storageEvent\", e);\r\n});\r\n\r\nexport default store;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAADEUlEQVRogd2asZLaMBCGNzc3AxVORcfc9RSh3ga/QfwGgSe4PILvDS5PEHgDeILjmq2dGR4gGTqqMxVUZJSsHAVseSUM2HwzHsAjyft7JbRa6cN+v4db4L5KDUQUAoC6BgDwkW8P+fONP98BIOFrgYjvVTz7JI8QkTI24uuzZzM/AGCirlNEeQlhAV/5CnwfnsMUAGJE/Ola0VkIESnj44oFHPIMAC8uHhILIaJHAJgBwKeKjC3jFwCMEHEhKXwnKUREEQ/OS4lQPADAK/eAUko9QkQjAPh+CcstTBFxZCtg9UhNRCi+ENHEVqDQI6aIXq/n9fTVapV9b7Va0O12ndvY7XawXq/1z2+ImNvVcidEIhqYnqhCSLvd9mpns9mYQp6IKEHEI+8cCeE5YlZmmA2bwQdvuBCLB1+IaHE41+R5JOZ/jLMJkbQTBEGRkIAjgdC8+d9g5y71JLL2ugx5DOcLUW5rgAhNbP7IhPDMPSyqVUMeTK+YHombYP0BuUKia1vlwZB70l8hHEudM5o9JxEYHgmvYkI1hKaQQdOF6AlR9G/lG6qYqBlb0o4qJyRQ48Qp+XBJIY483nPmw4o0NLGx3W692lEhjQSRR6oQIo2xPAlFS90mcDNCRF0LEb0aJ6LsuwrL+/2+cxtqYbVcLsuKLe6k6Za6oz2SSkIU8w3bsHlQ+IZdPZjoMZJIa9SQVGUktZAmd68/tmshucmGhjDLhCBiwrnWZgsxbzSMuc7Ym0KalHjQZDZnQjjhNb2mVY68mXPgYYjSpAREfjoI/nnl+eImuTM/jEiOYi1EjDkZcbSp4xtzmXQ6nVPbSc00kKYo+o24Qh2J8vYWbfsjauX4WjMh47wtBbCtR7gPjs9qlhuFIqBsYcUVxzXoZlYRIN2e5u2GxRWykSlvUZdGHaKlLsdiKsc6r8Q8GersykAiAjxPPkQcGuTualVAysc4nEIm70M1vDdRuE3ngYq+J65HN04WYggKeYIKPUSlHHXPpF2oiEoPnvFeRcjjyTyzpdFntVQolPDYq4TbOEEHAL8ByrwzaUaPa+UAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAABSCAYAAADXYA8CAAAACXBIWXMAAC4jAAAuIwF4pT92AAADo0lEQVR4nO3d0XHaQBSF4WuGd0gFoQPTgUkHuAKTCpxUYFJBcAWGDuggoYLgDnAFgQrIKHOV0RBhrdAKnZH+b4bxi8e+uxy00sq+ujkejxZo5K8u+HnBGMdmNhSbm52/UrI19gu+aWJmMzObmtngSoWp2JjZ0szWZrYvqCn5vgfRcdz7GBZm9ihQT57P546II5/cu8ZLbN7BzOb+RuZJjjC/hevf+AEleOlrwGsv53cmR8AtIfwnWQm++3Kdt6yNG6qrTW5Pg5iE8KWDy3CIu3fCiIqyQZx4CHHerZ9vIbI0iEMmONidnzMiojSIc5bjUr50aCvrKnp+NJx1YKwxDZizuPol9ggPmX21thp5wEJ2DGYlluiVz10dFn7uWlWjNaZBLPLqFzNFG7ttsMzsHrznY4mtm92Fd2tCxHpPGq2xF3iuM+1ICFNLP0IU4Twxkl7AYX1zcr+yK0KWKTazI8m7s3KqiyG0Do+7EQTxPIJ4RSFBBGpHECGBIEICQYQEgggJBBESCCIkEERIIIiQQBAhgSBCAkGEBIIICQQREggiJBBESCCIkEAQr+PJu3HV8YrVLKvRGgkiJBBESCCIkEAQIYEgQgJBrI7/f67uQBCr23mTKlVpY6WNcI3rosdbIMzEm3eq2WV6+Ey9y5laD/CkudeCIMYxEn0g0mmbubFgjckTLIYEMY6190tUk97RmHuNio8sSWoaco5Y3Vg0hKmJf1V+bs6UIFbHc1eqGxBESCCIkEAQIYEgQgJBhASCeB3fzOymplesW3eN1kgQIYEgQgJBhASCCAkEERIIIiQQREggiJBAECGBIEICQYQEgggJBBESCCIkEERIIIiQEBJEtc4A19LVcTciJIjjFo47RFfH3YhewJ9x32a6BXRJSFOl094yuFAvsL/fumNHiGVgiw56I0bS90/1Q8GPG5jZLzNbdWDyZ4G9bN58LjiXjKDvn/6Fh61IUWC7ZFFirBPvyFWHWB+ERmu8OR6T57H8LeCppiLa6OCTu/c38IfwGDde41GglrPSq+aFLzUIM/cQInIQ997a9sDEFlqVXJYRILuPuPVDOGE8b+UXM4jsdEM7DSPL9P+eCWF98u6sbH3P8Lktg6wo+VB+En1qQGucu8W394n/YGZfxZ/RUYc3X4Y/+dXxe3dQ1O+upBdVyqdcb+n2TRltvt23u3DDPrl4eayhnqoO/n5t/bTiRbDGxP0lQUQ+xeesJAHMbjNp1mi2/wM1J8EMccD4ogAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDM6NTYtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDM6NTYtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZWFiYTVjYTMtYjgwZi1mOTQzLWJlYzQtMGRiMmE5Yjc4YjczIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YjVmMWJmNTctMDRiMi1iOTRmLWIwNzItYzZlNzM1MWFiY2ZkIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YTIzNTMzM2UtNzA0YS1iMjQ4LTg2NDQtMWVlMGVhZDYyZTRkIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphMjM1MzMzZS03MDRhLWIyNDgtODY0NC0xZWUwZWFkNjJlNGQiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmVhYmE1Y2EzLWI4MGYtZjk0My1iZWM0LTBkYjJhOWI3OGI3MyIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0Mzo1Ni0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5Y8WFVAAAIIUlEQVR42u3d227bOhBAUXt+PPlz9qnAOUXdyIlEzWUtQK+NTIrbEydt4+Pj4+Eae60fXtbQ5brwigedrS+u7H8+jCbQvUPsvkCguTl87h8EGkHz+kCgmRwssQaBFiZrAgLNsQhhnUCgTYbWDgQaU6D1BIEWEutrGRBohMN6g0ALBdYfgUYY7AcIdPMYYG9AoE1p2CcEGgfevoFA+5YZewgCbfpCpBFohxlvuiDQ4ow9RqBNV9hvEGgTFfYegcYBxTOAQDuY93qefHkWQKAdyJNCXPXreCYQ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\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-SG\": \"cdab\",\n\t\"./en-SG.js\": \"cdab\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"73332\",\n\t\"./en-il.js\": \"73332\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\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 = \"4678\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg2NjdGMTRBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Nzg2NjdGMTVBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1OTMwQjk4M0FEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1OTMwQjk4NEFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po2xoq8AAAGsSURBVHjaYvz//z8DPQALiDh27Bi6uDoQzwZiKyBmJsG890A8HYhrgfgfhkVYLN8KxMpQjT9JsEgQiKuA+A0Q9xOyyBBqyVEgtkN3GQFgBsQngTgE3SImLIq5oPRjEi0BgYdoZuC1iCZg+FmEnBhkgNgdiHWhfFUgzibRPD4oLQLV+wyItwDxb0ZQhgXmIycgZxMQc9PAM2eA2BEWdJOoaMlxIG6G+gYETIA4AxZ0WlSy5Bc0+D8D8Vkg3gAzH+YjRipZxAyNHxCQQBJnZKFyfDBDS4YLQGxPqAiiFIgCsSu+5I0OdkELSFKAMBDvJJSP0ME7aISSAsQJZdiveJJ3IhC3EWGJMh65rzCLVgBxMg5FXGgpCBfAlXJBNcAKmEW50AouCIh5oBgGQDXtEhyGfAHiv0h8mL6/0Lz0FIibgPgILB99h5ZNkkDsg2ZYKhB/wIENcDjgMrS21QHiVcQmb1B1fgOH3A9ySm9cYBkUM5AQT/+JsegxVKEtEAcC8TcSkrcDkhkELboHxIuAOB6I15FRMoCCs53YoEsC4oNAbE1Gu24eEF9BlwAIMAARq1jQ6et9zAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Light Gray.de8ba4c6.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzcyN0U5QzBBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzcyN0U5QzFBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNzI3RTlCRUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNzI3RTlCRkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg86Y2oAAAV0SURBVHjazFldTBxVFL737kIXSbtAGuNLy48mfZMSH6gKZUGbxmglfdD4JAvW+tCoFJu0L7AtRquptmulD6ZSWF9rYsCoaWrM1pIID9qfxCfjljWpL6Z014RSYGeu31nu4GU67M5ul4GTnJ2duXfmfvPdc8895wwfmnyWPYTslIy34xjiTAZxbLN3QPvP0DRjPJ6R/ng5n/9Nbz/UPOF6MH8RAOugYaW1AJmzM9p3qz77yrlBxyR0dFGWx8r4wq1CBhYF9K2iQaA0QISAFjkbdF8EQBNgPHZuqqWq1GB7odPQLoe2MegJk/k6wFZDlkyldE7XAWoQOu7A+uv03KGp1sNuQPA8Nmux2Wm7njSZOCGY+Q3+p9wyMycrq2Gz+wUzIgC63eGlw7DhVDHMEtC4DWgaIHvIbgF0pBCgJBV89q6PZS4AaC1YP7C08JaFxonnMguRB2ijtqrHwUy9AvnQApsdvi8fqYeZjGcfv6SNuQALN0DxwPfBRicxw0oo9Ly3m690zsuKD7LD5AHsBHZUB2ow/xuwsQG2htK363I/Zu0t/M0o0I0KR06wvbqNgtFBsjHmgRzZdWl4zqw8CXNbVIA77V5C2Kb/uGajY7RqmYdy5OlLkQUZ+B5jZxmG6UV0c9DBRqFB9T+FjmG2DvJ3phZeQtxVJrEFwD+zg63THL6EezpcqFsqlXzS8uXMjPFoP0CSKRi0cUQnO+p1sDqLSbinUbaOEnnm4vmMLEsqwKaPG92OYGlnYhtA7hiPnbHcGWdmlwV2pxaUmPB5Y14BOtR89QfDXLh9P5N+z96WNmu+znrOpYW27exUqInAhvRdqtSOP5ecm2p9wSfK3/WLQJO97Wzr0J1Zc/NPwCSX2JXtOlhpSt9NL6caQUs1Dic5446bDrbj31UEhx+zUSj/qhorrnpsmjPg6HHOxYdOjTDJuLYN1wk9FYFDvuUlUjh8sMaF4P7XnNoRmSX+Z1buXpHWVPv++dPF1NFbXoS+AiX7PgY9CH2K/gPAx4X0yyWnWob/wJZrBfMFpTXLy5DeC1qjwHwBpYH3QD8CyAb9/V32K3kOtpyM0OBghtj6VU0nnf+oOjyvdXbbL9+ADzDLb2fqd7hk1hM5OtG9g5PXspilvF4Lht1MjVEKIJJ8fb46AV94wiKScAo9YAnwe235HpAx5zOmNBLqNOHAun7NsR/uZ6ZpJPJnEvc6tNlPUXZLAfeZLBBZ9p2fL77k8cawegT2y97LFWL2OcVsn1D5lqJ98cWUsbVmIwQyRyfCWy2gKmuJE9jrqqSTlUrx7/6NADbom3nVAgpW/3qnOX5NqJOYxu7ARgC7WaSO2ZLYJeOFrY5qJZ3tyGh71hPop5N73kQCsE3DNLIMlqp5YPcrqxEZ7Wk9wPE0rZncWx3gc6e0SzEswukVmwLCMfIKVjkn6JS3eyFwn6Na4ppW5YGV2y0F3VQn0GtPYNvTFOfzqbZBTPnL2qXjeqFOrAwUjNPIwb7VbGXAlkyumSBt6cH4/XpVEUCjOQMZBLxdYFTPGEb04sdaMYp1MqxduuFEkmN9luqosJ04mH1Sz89w3lXKegKNs4nPxbDy99mAhpzqtGK16h4WXEhnWNnSNMykuxRAF+SmAyBk2i3QnPGsBVi3YVqlePgFCzQxUwhA2soJJEhIlvP58yBgi26juYCuagZ2gZfoU2XP4IOhXvZbwXXJRHxeBpJ4yYQ2zQ0+ZtQjM233cQPZqeEUJKXVqo/mjcLdfgdTdhxVHy1KJbTN9+Zis6i0hsyCFhh9gaGvL3rwU6DQfeS/qdgWdgs0G7cUOpL60EZ12whiiCZMbUgVSqooXXa45QrZOF7wBoV5cFHXip2G/wQYADxQP59kEH7qAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Medium Gray.7e73106d.png\";","import Annotation from \"./annotation\";\r\nimport { setLineStyle } from \"../canvasUtils\";\r\nimport { defaultTransform, defaultSize } from \"../geometry\";\r\nexport default class Magnifier extends Annotation {\r\n constructor() {\r\n super();\r\n\r\n this.showZoomedImage = false;\r\n this.x = 0;\r\n this.y = 0;\r\n\r\n this.imgX = 0;\r\n this.imgY = 0;\r\n\r\n this.color = \"white\";\r\n this.lineWidth = 1;\r\n this.defaultMagSize = 150;\r\n this.magnification = 2;\r\n\r\n this.saveCanvas = null;\r\n\r\n this.transform = defaultTransform();\r\n this.imgSize = defaultSize();\r\n this.viewSize = defaultSize();\r\n this.fit = defaultSize();\r\n }\r\n\r\n get imgOffsetW() { return Math.abs(this.viewSize.w - this.fit.w) / 2; }\r\n get imgOffsetH() { return Math.abs(this.viewSize.h - this.fit.h) / 2; }\r\n\r\n get offsetX() { return this.x + this.imgOffsetW; }\r\n get offsetY() { return this.y + this.imgOffsetH; }\r\n\r\n get minOffset() { return this.magnifierSize; }\r\n get maxOffsetX() { return this.fit.w - this.magnifierSize; }\r\n get maxOffsetY() { return this.fit.h - this.magnifierSize; }\r\n\r\n get minImg() { return this.magnifierSize / this.transform.zoom; }\r\n get maxImgX() { return this.imgSize.w - this.minImg; }\r\n get maxImgY() { return this.imgSize.h - this.minImg; }\r\n\r\n get zoomSize() { return this.magnifierSize * this.magnification * 2; }\r\n get maxZoomX() { return this.viewSize.w - this.zoomSize; }\r\n get maxZoomY() { return this.viewSize.h - this.zoomSize; }\r\n get zoomX() { return Math.min(this.offsetX, this.maxZoomX); }\r\n get zoomY() { return Math.min(this.offsetY, this.maxZoomY); }\r\n\r\n get magnifierSize() { return Math.min(this.defaultMagSize, this.imgSize.w / 2, this.imgSize.h / 2); }\r\n\r\n draw(ctx) {\r\n this.drawMagnifierBorder(ctx);\r\n\r\n if (this.showZoomedImage) {\r\n this.drawZoomedBorder(ctx);\r\n this.drawZoomedImage(ctx);\r\n }\r\n }\r\n\r\n drawMagnifierBorder(ctx) {\r\n let x = this.offsetX - this.magnifierSize;\r\n let y = this.offsetY - this.magnifierSize;\r\n let size = this.magnifierSize * 2;\r\n setLineStyle(ctx, this);\r\n ctx.beginPath();\r\n ctx.strokeRect(x, y, size, size);\r\n ctx.closePath();\r\n }\r\n\r\n drawZoomedBorder(ctx) {\r\n ctx.beginPath();\r\n ctx.strokeRect(this.zoomX, this.zoomY, this.zoomSize, this.zoomSize);\r\n ctx.closePath();\r\n }\r\n\r\n drawZoomedImage(ctx) {\r\n if (!this.saveCanvas) return;\r\n // x, y on top left corner of the zoomed in image\r\n let imgX = this.imgX - this.magnifierSize / this.transform.zoom;\r\n let imgY = this.imgY - this.magnifierSize / this.transform.zoom;\r\n // width within the image to zoom\r\n let size = this.zoomSize / (this.magnification * this.transform.zoom);\r\n ctx.drawImage(this.saveCanvas,\r\n imgX, imgY,\r\n size, size,\r\n this.zoomX, this.zoomY,\r\n this.zoomSize, this.zoomSize);\r\n }\r\n\r\n updatePosition(offsetX, offsetY, imgX, imgY) {\r\n this.x = Math.min(Math.max(offsetX, this.minOffset), this.maxOffsetX);\r\n this.y = Math.min(Math.max(offsetY, this.minOffset), this.maxOffsetY);\r\n this.imgX = Math.min(Math.max(imgX, this.minImg), this.maxImgX);\r\n this.imgY = Math.min(Math.max(imgY, this.minImg), this.maxImgY);\r\n this.signalReady();\r\n }\r\n\r\n mousedown() {\r\n this.showZoomedImage = true;\r\n this.signalReady();\r\n }\r\n\r\n mouseup() {\r\n this.showZoomedImage = false;\r\n this.signalReady();\r\n }\r\n}","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Gray - Selected.1bf55ce2.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAHQCAYAAACWQBBDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0xMi0xOFQxNDoxNTo0MS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTc6MDA6NTYtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTc6MDA6NTYtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjdiMGVkY2QtZjdhZi1hMzRiLWJlNGItZGVjYzQ5ZGUxNjQ1IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MDUyNWM4NTItMTI4OC01ZjRiLWFhNzktZTVkMDA5MmVkM2Y2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTY0YzcwYWEtNDkzMC05YzQxLTllMTEtZTAyYmYyNmRiMWQ5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNjRjNzBhYS00OTMwLTljNDEtOWUxMS1lMDJiZjI2ZGIxZDkiIHN0RXZ0OndoZW49IjIwMTgtMTItMThUMTQ6MTU6NDEtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJlODdmN2M2LTY2YWUtMDY0Zi04OGI5LTBlOTk5NzhhZTZlNyIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNzowMDo1Ni0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YjdiMGVkY2QtZjdhZi1hMzRiLWJlNGItZGVjYzQ5ZGUxNjQ1IiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDE3OjAwOjU2LTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv4xGZMAAAbNSURBVHja7dzRbuM4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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAQCAYAAADj5tSrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTZFOEFDMzRBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTZFOEFDMzVBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFNkU4QUMzMkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFNkU4QUMzM0FEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjgSYaAAAAEASURBVHjarFTLEYIwFNQMd+jAdAB3D1pCSrAErQA6kIMFUIJ2kKM36UBKCB343sxmhnlDAAnM7AAJvN19n+wf7+Nuw6sgnAn1cFFtSFARGoKVG1uQsPJ24KSVHyQRwTOoZ5LLWPBYJ169C6mfcsLq9MRPGfJeQL1dokgFUtARjNgzWO9AYpfalk58cI02NLjXWDP/BJ+riSdjZ5816peQaATkAr/w7Na2oQoM1ZdwQnEZ15hBUuJI4K4q8c4OnnDQwlUUiT8SuAY94Sa6y8Y6qZCOnHAgpIQ71FeDRljtJEGAdGQvB0q4c4JIunOBIbYJ0tRMCNHA3BGfBdwWPwEGAOJ7OEr0x8jEAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Pink - Selected.80c05ced.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAADUElEQVRogd1avW/TQBR/RJEyNc0AUqFI7UgnwgBeLDWMTPg/IGU1UvMfEP6DIHRrm/4FtEvnVPJyMBAmGFOJLwmGpp06BT3rnXXxx/l8dhI7P8mKk5yf3+/efbyPuzObzWAdUC+KA+N2GwA6AICfu/S5GWp2CQATABjTNXItb1LE+3NZhHEbFe4BgAMAO4ZivgLAEC/X8q5MdTEiwriNPd8HgH3TFyfgBOWaWCkTEbLAAABe5tdZiXf4niwW0ibCuN0lEuFxvyjgfHJcyxvryK9pksAxfLxEEkBz7gt1YCqUFmHcbtFEXPRQSsN71/J6qjZpFhmVgATikHF7oGqQaBEaTq/w/tnD10Zv//TjKLjfaNyHvXsvMsu4vv0D3/+ei68HruUN49rFboiM231BAvF0Oz+RZmPLSM6v67FM5Jhxe+Ja3ijcLkKEdui3cUI//zyK+zkClcI32MP/zhP/F0ALProba8Eh6hhemuMsEms6CPWwCmlEdORsN58kEdmhzXhu8s9NdsZt/POxlrarxSGNnCgRWmr7FSAhMLeKyRZxlrzh5cW+bBWZSJWsIRDME58IMTN1w1cJZ46I/EPFsEkhRUCkU1EiIHQXRIoOkJYJn0g9vB6rYOpzydhobGnJwZ1dE77+uLO3dJ8w9bnCRIqQI8HfMuqCkQq6PpYK6MWayMHn0oCjSssiuj6WCje3vwuRk4CWVqhbBawNkTpl/pRwLc9IOON2cI9uubP3IbMMDKw+fnuT1mxS0yFSdmBCT8siAnIPq6CyoGYPZ7Eg5r+gRunJqZaG5YSfwBOTPRLMVwgjmchphYn4uledyKXI3PtEKLVytnK1siOI2+UNUZmSLCGmcuoqIELZu4sKEZmrn4RdlKokIKaqdJCwysnS1cqOvk7KtEfhYySrYupzyXjQbOeVc+ZaXmQ+R7xfYlrWrAq6I7EVLFV9pEvltrIA50UnqaaYGI9QQeWgCiQgLbAqCZlUEqATIRKZ5yvykPFURFunRJ2lzr7sCm9qJVdG5iMcjNsObUaLSnqjd9HTPSggYHyohla1Iitc6LQO4gqdOsh9XotSrl3aRLOSuqAQ4jTvcadCD57RPGpL2f1duoBC0iu6xqY9n4T1OEEHAP8Blyc2caADLR8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAACXBIWXMAAAsSAAALEgHS3X78AAAB5klEQVRIiZVV0XXCMAw8ZwG8QdkgbNBsUDIB6QaMQDeACQgL1IxANygb0AlqJkif8s59wrGTcO/lI4mt88nSyXRdhxjG+TWAS1dbP/g5AeP8EsCaq85dbW8DEuN8A+AI4AqgepbIOH8D8MLXu8QoMgSCEsDuieAr47ylijs/LyRGoRZpgnCKs3G+5eZRAkkvH1FSKSJbjBDIifYANtw8RbCg+pjIG3z+SjAX7a2ZqpLvcj9NV9vvEQKNK0lsILFcWCIN2bCV1LFamgmCgFNYW7B6KgZLYUkCCbZhaqcQDtajv5MJooU67YkqWqZOX3DAoPT/q2uGohPTc6SiFFGytx76ZIRIgnxHFXiR1Cmir1zz5mxlqhg+eFcbfcE5JElmEmmVVVzeGkXux4w7gmpacYX2aRL2wXKESLtCyWJIel3uTlbKSiraRJy6QKxdYcunSZZwgiD0xyWjqIxIWzbtW+x1D0pGrOI+oiiFEwn7wRcrWWa8SL7tZxZDaFpHIuh5su5qKx/fExuvYaROEGlXELwa5/d9utgTt+Cy0XxJWkWmj37U6EU8ftfKZcWTWirKzvmMogGBNGlQEqoi4NDVdosZyCh6cIGCiwKByD2wwWYhoWhgM2H89p075j9T4GElzbuHOAD+AODaIcxgd3XzAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Green.d844bee5.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Pink - Selected.c24ef509.png\";","module.exports = __webpack_public_path__ + \"img/Close - Blue.28d6758d.png\";","module.exports = __webpack_public_path__ + \"img/Close - Green.0e950bbd.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Microphone - Green.8018a51e.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Green - Selected.06b15780.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTNBNEJCN0ZBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTNBNEJCODBBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxM0E0QkI3REFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxM0E0QkI3RUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqHYe/wAAAa3SURBVHja7J1N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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAABSCAYAAADXYA8CAAAACXBIWXMAAC4jAAAuIwF4pT92AAAEB0lEQVR4nO3d/3HaMBQH8CeO/3EnCBuEDUI3wBOETpB0gtAJSiYITCBGCBM02YBMUDGBeso95wjhh1wb9DX+fu56vV7T9Fn52hby+cl47yWGsa4vIv2oL244n2fPZY/AWDcQkQzsyFc+z1bFH5BrPBhEY91QRMYiMhKR3lnLS28pIjMRWfg8c4eqMdaFr7sFPY7c59nCWDcVkTuAenb5sTOIevULg3uDUGViaxGZ+Dyb7irDWBeuMH+B61/6PBsa6+JufWm8drb/W2NduAK+MIQfwp3gt7HuWUO3bZC+xMa7/hREDeFTC2/DMcKJuS+MVNFHEHU++MQBPeg6zBmB62us9yDqWc4BjnNjrJs0odAmKa6IE96OS7nXD3RUk45eDccc0FJ6HLN6dUusEa6LdbUmHWBJfQ1YzIrBWO8kMeY6dqcw1blrVUlrLIJ4zKuIDI8t7F6I2cbqwSFX+qQixup/ntbEMNbV9TNJWmMn8rHdqCUhfOfzbKZXiGM4T6xJJ+Kyvtx8XtkiMbcpLmbX5MuTlR3aGEJp8XEnwSDu0dK7QDIxQSQ6OQaRIDCIBIFBJAgMIkFgEAkCg0gQGESCwCASBAaRIDCIBIFBJAgMIkFgEAkCg0gQGESCwCAShC5/DGfxYKx7YI378YpIEBhEgsAgEgQGkSAwiASBQayO7z9Xt2YQK9IX8V+BSywaKy0T13HIguuI9Qhtn+8B61ppQynRrm9jwH1WXNixgUGsR3/jF5LtNnMDwA5mL6FZLINYj9C89AqwrtDvO0wfJloj4pYloaaMc8SKtFknYggLQ/0ded+cEYNYHfddqa7HIBIEBpEgMIgEgUEkCAwiQeA64nn80rW82oXte2tamklaI6+IBIFBJAgMIkFgEAkCg0gQGESCwCASBAaRIDCIBIFBJAgMIkFgEAkCg0gQGESCwCASBAaRIMQEEa0zwFkY61p53KnEBHFwmYd+VFuPO4lORJeoa2PdMFF9KcU0VdruLUP/qRPZ32+hrTVawVg3i3wPhL0Ra9LVs/r2yLfricgfY928BYM/juxl8xZ6I3IuWY9u6J9nrJtq2I45Ftg2mZY41qGx7iRvyNX4YTJpjcXrpGFQ0TekQbIWkVmJem7Au3FJ6hqLT80hiG+pimigic8z1/ZBqNN7EHVQR3qm02Hz0GqXY1Svj3VEn2cv2tSRYdwvhHCMWlyTfVrQ3ggjb9NfPTKEp/PlyYqGMawZPl7QcVYRTsrvPs8Qdw24GDsf8YU5ow78NxH5Cb5HxymE8M01gH2fZ3ufoBz6OxDFhyrkKdeb8d6X+hcX/rhvpRv4lKLrsHdpS98phG8Y7nLGujCteAKsMchLB5F20ycscHuYbC4zwdaYZ+4fTMATOCTi/NMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAACFUlEQVRYhe2YMU/CUBDH/22qIYShCbiqE9GJSFwYiAwkrPYbMBGcXUnEhO8gYeIb1JXERIwDi9Ew6YeQpIMDg6Hm4FpLbemj0JbB39r33v179+7dvSeZpglRJN24BFADUAJQ8Jk2BjACMDA19V547SAhkm6oAOoAWgCywqoXTAB0APRNTTVCC2EP9FiAvKYIixkLaqzykO/ikm7cAdABHGwgwrJBa+i8prc9t0c4FA8AzjYU4AV55w1A1R0qL0MkohiBCMtekW0sseQRdl1jlYj2aQo3J6lQKp4+v1F5/gJ7pmdq6pVToSWCNmYzIk+4IRtNtjlHwe++oOwQ5vZjivb7VGh4JafgsZzx+tSTdGNI+8X6+3qIM2IbZNm2HYZWTCFxI7NtyBynJLxhkSUNMteOpKkpXMD+YGpqnNpKyooqOody38lxWsZReuvbqaAEjeADyGaTA20VSWSKJ/9C3ATuET/qh/vzo1sEdU8SEjIOyhwvjrabPWOFG11hIVTo/IrdsJzBRU6hIrqukBH90mDdWREwkLmhnSQoYkIarCB3uGuKmxnbttO3n5BXJmx7kb7UIUm6Qb2q7h4ZcfFrWN28nX+8V7oxhYhsdJ0XLq97zQu3/MGnUDjI4KupqefO2V4nUpUGRuSZGa9ddX/wvfvyHae5ZSFd511GSAh25RJO8MQ8gOuQ6U1zaG4+6K1kNx5qAPwAopu7AVqSuo0AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Gray.ec37e8bc.png\";","module.exports = __webpack_public_path__ + \"img/Edit Patient - Gray - Selected.646bbc4e.png\";","module.exports = __webpack_public_path__ + \"img/removeimages-blue.4e7891bc.svg\";","module.exports = __webpack_public_path__ + \"img/Microphone - Blue.a1a0bcb9.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Blue.fbe83dcb.png\";","module.exports = __webpack_public_path__ + \"img/CSV-icon.73121a60.svg\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Blue.60b510af.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAACbElEQVRIib2WTahOQRjHf3Ndn4VJZOGzrvJRLKQrWVCyUCxGFhZI+QgLsborRVm46tpcoXwXOwybu1B3oUgiC5SbS1Fu2cgU3QVq9LzmXOc9Zs45b6/86yzeeWbmP//nfZ7/jPLe8z/QKRzKui5v9LsYn7JuLbAV6AaWADND6CPwEngE3PBGfyg7b0ORsu4+cNMbfT1HsAo4C6yuKfgWcMQbPVJGNAwsBPbK6YDjQA8wvsWsOmC3N/peiuh7btMnLahI4bA3ur+JiDtfZgOf2tw4hm3e6NvZeAewqIXFovZySO9wxdwryroZ2Q+purkVC34CF4HeYmUp61YCJ4DNkXXTgGPA0UxRVwVRnzf6UKx8vdHPvdFbgGuJtfuVddMzoipFB0Opl2Ef8CASnwLsyojmVWwiKRgMjRuFN1rSeyCkuYhN1EydYBxwUlk3uYRsCHgYCTWy0VlQJLbyCngLvAnfUJW95PAMWF8Ym5URSVW8AF57o7/W3DCFb6lApzf6Upub56FTgY5/SCJYExkbSRIp6xYr684p6+bUZVDWdSc8Utzk932Um7xAqgvYEYbEQrbXIJkKXE2E75JzbyHsC70woTCxxxt9uoRE1g4AGyPhz8B8b/RoI3Wh4VZESAS9yroBZd26AsFEZZ0BniZIBP1CMqaIPwb5OEGWP6H02SRgebCYFKQnl2Ut0/Q4UdZJ6s6XLK6LH6LSGz3mf01V542+EK7xdjAaLr0mk40+t5R1e4AzwVBbwXupUm90o6TziPaRN1pu0aXhJq0DUXEq/Cd/kSQVFdRJb+0ENgRyeWMI5PRiooPhqZb2SeAX7+PQJfqHa5kAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/green-90rotate-icon.1b87361f.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTU3Mzc0RTlBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTU3Mzc0RUFBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNTczNzRFN0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNTczNzRFOEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnHHDBcAAAQ5SURBVHjavFm/i9VAEM4Lr7EL2ksKi7PwWGy1iIVgdSyCINiksLCwSGmj5E8IKNbbCIJNsLruAlpoF7BQESFgLaSzdfeYOb5b9lfy3t3C8O5dNrvfzM58M7Nv8+bLnWwPo9AiPM8mkp3Hdod3ay0VgZy1DJ55gsQA7kmmywBbamkIpAHXaRkXvCsBbBdQ0DnyBcfc0uIjWapZADQDgII+eb1yn2AFWMAsrPbgfgOdDgNu9wG2JnB16oIrQAsyQk8nuMpnFb1cUQBd1JjJGDVYfF4Clq0os8sbxjjXtfzQcuACvPUc/TMtDxI3EWSNynGMTGkpdGUM81DLWwIuY2CZmh5RxKpAQEmaOxOYxgGoJCU6UqSjuS4DNeACir53OGljZbABIrSgT2W9xIwwewCGeJZB1/CeDTSDvSWun1vaTUBTM2QoZdFYZy+UyLMSkgGvi1kQ3aexTzW3gqr1RKoZJ1o+QhZaO3pa45OWq7C+i9YyUuYcWKaNKcAOt7T820NRwr77TsthJIO1qMzWCpYQrTwFjWsr1XLelw4rIhMU4EYc8Qqt57Au8/2c0x9lwGISIr4noD2UhByQM81lGpNAXS3N7wEoKzNH+Jzj49QNqogPNpbVR3rHbPiZFEWGQH9X9Ow2+WjjoMImcqoDghWBUq2kTSdHZB9ruZngw4J888RjwYn28PnuyM/YsmPABXqPEo+1XItUYlwIGcBH9L0MMESofsjYZ32FSuWxugSaq8E3i0BWYv+WgZIxC1i3yiMVVeE5Ztvi7IsDUJN0VFB9wBWKmGW3O3Dl7KA3s+kf8s8j36ZrR6z4nhcq0FCWO4wc62qwRQSAT4nCmsel4BPos+rE9ZLBzhHLxqLXzkpYBNVWxRZilzlCf1NOfiYijZ0LLGelESjKVpQLcgVs0C9gHVTmFOwYAeuL3mPKSjLSknPp+VfL+0R2cQZzHuG4EWoHG8ABRX2TWHh/p1apdDwrApnwLGnFLMuFROcge0n0xHdZtSPoanh+F0pRYa3fRnozhTw7ePwug/5KWs0hZiXlOcqe5k5wUrx5awWozwU4UM96sDJylWP+/y1A9muSyleqLW4EmKClZx0mhQms63vphMhe7AGsUf4KGaALKHTutO0erHH43UiKHMFR73L5wWuY9e5Ztz+2gTq0em7RkcuXkOy58G5ow3KhNdn/BdBdDQYpgAGEbfWtI/LNS6/odsRF4hMEmYKWZwhcckjr2tTFOLzOS19ftvUc0y8tzyPtDvNzCfcBvuujlMsQA/C3lg90fTWlgDUb3CegPxMujCcHF69liNdaXviMlIcqc7ibveghHPGxqJ6dwN/UruVdpHtWgaS0qPjmQmXcs5UrSL1Vgrsl/wDSwaKuOmApzw5wt1andiRLerAZQNZg7QE+ff6INQWzw7hUy82OvzCWQOChXxhRqdXjvwADAAczYsKfbQOoAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAADcklEQVRIib2Wa6jPSRjHP7Od3XWs1Rxy3zjbOmvdcgkhLV6u1jIUlhXyhghFkt222DgoyiUkWW+0rdrG/eCFcEq5e4NE7JG9tC7N4mxu22zP6RkN/f//c7LlqX/zm/k/M995vs9tTIyRtyFlCcP40As4AeyMzi7M1t8HRgNfAAOAzkBzoB64DZwDDsovOvus2J3Lsm85pBUwUgHeA+YDi4C2BfbK/xVAH2Am8KfxYQ2wKTr7vBTQSzE+fAbsBnrr2kNgD3AcuA48Bj4EqoARwBigPbAOmGp8mBCdvfHKmclHxofpwI/AXb1AhdKzEtgYnX1UjBbjg4DOA5YqrfeF6ujs2aTzToF9bRTkD/XNjlIgIvJ/dHYF0B+4BrQGaowPn5QCStIBOCaAxodVpYAyQAH5PAPbbXx4tzGgXIpGUwGwv4CxwD9q4Rxe81EzdfDr8m909kFTgZIYH74DflAXVDaasMaH/tHZC/rdFegGXI7O/qprwspQQC5aG519qustgTt6+fElqTM+fKNRJ9+TgV+AYcBh44NTtT0abRK1p40P5UqhpMQ+1RldLI8kQY8AHYGLujwDmB2dPWV8kGrwtfFBcqV9dHaQ7tuu/vlJ90jeTQEGlqnCNKATUB2djerQfsaHnsBa3VQjm4wPfwPjxCqgu9CV3fEk0CObX9exS7Jom5YUoeFKESZvAbM0bAcC+zU5n2Y6UnrKs3m9jh8kH6XwrSgCIrJVyk10dhIwCtiiIM0znZYa1klaJMAEVKdjVQkgozVP5J7moCTmkExHvi9n83ReXQI6p+PwEkDVwFHjwzINlOUa9lK1dxkf1gPi073ZnhE6nmnII6m2wM9AAD6KzjZwq6FaGZ29qvOPNY+uRmfrdE0sHQxI3zqVepLm0W9K37gE1Ezpk7BeGp2tLmFZk8T48D0g1v8ul22gLjr7BFijB3xrfPj0f4JI2C/R6WpphHll2ABcklAUno0Pbd4QpJ36SWg/D2wmr97aficCUkClw9YaH7q9gSW1Gm3SQKXTviCv3pmylJNDmpj1Gm0bGumw4vgFSle5gkiHPf9Sp1D1Nj5U6Zuhry490gKZ3gxyAYmm9Gb4KktOOVwsufnKmcXahHbGucBifXg0JhJdq8Unia4mAWWAUgPl7fCl1rjK7F0nKXFG696BQs+sBgH+A0QmQdZFEbepAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg2NjdGMUNBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Nzg2NjdGMURBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3ODY2N0YxQUFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3ODY2N0YxQkFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlcrUe8AAAIzSURBVHjavJZNSFRRFMenD/sCTbJwkWFhmQW2KZyagsJoMYsIS6iF2qakgogSXE1Q1KIWBRpUi74WuopAItpFCDU1JC0qSKIgwdzZIsONwfS78n/xfNz77lOHDvx4M/feuf93zj3n3FlQLBZT/8MW5/N586yDb441u+EwNEEDrNb4KHyE19AHIy6RTCaTWqjPd+B4ZH4HvIVXcAH2hESM1UAWrsJ3eAxrXWKB0Aa4J7FFcAWMq+lZRKcVPsGhOKFaE0Z4pFDkoGwOR1EJA3DWJlQd2TRdgrPvhSMzkgE2zmKDgsKzVC+0KWbtA3gJPwOPajyb/1GyrIedcALaoR62wzPH7yrgYjh0dR6hG3DGkb7v4aDO1madsDKpR6eV6nF2EgYt4yugIxBa59nEhOCFCjcuvKf0jFo2aehSqi1TmMtj1gyruFOWwp/OurBHo8qqr/BFDMe1l4gNwb7I2JpA6Dx8gM8wMc/6+e1sqmo9pbJKX68rle2yjP2IE9oMt+O6scWaHO2rEIQubLXKrjZ9XwXHEoiUw0PH3EDYIyPYoyxrCy06Ct2+yxOewFbL3Ljm/gmZQtsGSyyLr8Nz2BsZN421Bd7BAcdL3ILJaOi64I1DLCvGVWfLoFEtxmWmJm/ass40yHOeMFXJs7RHZEpHMOFK77twaZ4pPqlrfdBXR5d15/yag4j5k9IMT5MW7H3Yor9RSb24pswruFLTZWO6SXN67pd4dejth3SF9Pv65F8BBgA+K2eMVre0/gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA0FJREFUeNrsWotx2zAMtTyBR2AnKDeINqg7QdUNlAmsDXidQCMkG8iZQO0EdCeQN1DJHJTCKD+gIsq6XnDHs3wESTwCxIfSbvdB26JijUXGcTyYHwl/r0VR/Nw8EBD6aNoDCC89rFfTLKAX055zgJsLoDStHeeTNq2BjbgLAGHaU0TIwbQOWs/gXReQWayGhSn1IEwZMkHTjqYp0IZLQ2X2w+vRgjUtOXPOI2iMUp0TBDWPbi4ADyCq5TYHEKqJZiWNt0svItHkVWYTbrOamQWQG0QATLnbMoE5dcjrSY8567vFmsSdnxyJJiB1znO5JBDrqXp4ViCwJJkDJrFVIJMmFHK/IuAxm60COZIdV5506C2VSU1BZKJAIkXtYDICjS1DaxKtHLle5DXZY8YWV8ry5AIF/J0jWVQxj0Q013KAKI7vBqGGSDYrE/h7hmwj9Wwh8xg5AxyZawsNC9tF+PuUtIdoU3AZvemBwyXWgT4JGYEzSpM1dQRIE7UWhwDYRA6BCceACYzgOFqfsA6vJZnn5HXz9g4+5RlvQZxiJhnotuNx/8VRw1P+XaDev+Hb02QwcFlgibrjM+k/TVrz2Dk2g5ebW5CiOAd4o7Qntx+KMUaRxfHO2o0YwMxOawZUrJFTRJ1vO0UC0VeHWXBMYknev0DM7j4WiODOaeqj9Iz6LN8n0x7B1Gyz/d/xHED4/wN1MgHexQqacsb4A3W1Ea9VcbNb8IA3su0DsvxGz5IRZWnpi+POFc4TPuCC8H/DHs3wXwKyfQ54v2A8aRMie+cIqE2EXwc2JLTmwDWPaMrMyZ1wIGXwtwnpU8sFwkqZYXKaX3nvcj3ZsuYUSySbqLhAKlfit4GSOK2wIgPvfhVDvFWTOrjZglZQoTclsGLOBDr7pXLaeW3mTsJOsTOBqBa7oCNReVjrts9VoC1ho70vPmQEMSx+aU4O3D8XCxnNKdtrBZ3run+VdyMBM5tMrXznnI0jfanWOIjK8xKz5vp50LByANApZlsscSChunRp4wIF0i9H3/RBwcFRGf4wafx9LqnBw8Tet8c+GKjnesIcn3AI0M4X2HERqMmnYuv83k841vqoRiBAservg/4L+iPAAFcDeNaKOap5AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/AXIS Logo for Light Backgrounds.65e96d31.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAABdCAYAAABpa74HAAAACXBIWXMAAC4jAAAuIwF4pT92AAAK00lEQVR4nO2dX4gV9xXHz2wkTdxs9y5qrSkbNdGECNlsKrcPpTGWq9AHg/sSCFSofXFLU8g+qbQP3Ty0qC9VaErN0wopNPRFSaAFs6BJaR+WbeMWlNZE97oQERN2t3oTkxqmfMcz7sxvzvyfuff+5v4+cHGde/fu3DvfOef8zu/8fseybZt0wLKsnTGn+YFt20tafJgupKuEYFlWjYhwwUf5sYmInk35Nk0imocw+HHOtu35kk65MnRcCHynj7EA0l70pCwT0WmIAv8ayxGkI0KwLAt3+wQLYLDtJ0B0hgUx1YG/3ZW0VQiWZe1nAZR156cFluI4EU31uvtoixAsy5okIohgY9LfeeixB+mRkdU0MLKaVg0+4PwcxZ3mF3Tn2pfOv583v6Slv95Ke5qniGiyVwVRqhDYAkwmEcAjz6ymoecHqPb8AA3tGHAufl5uz31Gi+/fch6fvJM4LDjBguipOKIUIXAMAJP7QtTrcNcPv7Ke1u2p0UMbv1b4eXi5u/wV3Xx7kW6+s5REFHAZE70UQxQuBHYDv4x6zYYfrqFv7lvrWIBOAPdx/Q+f0sJvb9Dd/34VdQbn4dJ6wV0UJgS2AlNRgSAEsPnnj5Z+9ycFVmLh9RtxglhmMZzuipMuiUKEYFnWGItAHAqu3VOjJ48Od40AVBIK4pRt2/s7dpIlk1sIUa4AMcDTJzd3zAWkBS7j4vh81IjjAhJfVQwkcwnBsixYgR9Jzw3/dD1t/sWjhUT/7eb6m5/Q5YMLYdYBYhirWtyQWQhhIlj19QccK7DuxVoR59cxYB3mXv6Ibv/rM+kUltkyfKD1h/SQSQhhIkAuYNvJTbHJH524NH7VGWEIVEoMqYUQJYJv/+UpLV1BHAgkLx9akF4FMYxWwU2kEkKYCDAshDuoMogbLv1EvN6VCCD7kr6Q08U9KQKwYd9aevr3m6SnnuUpbq1JZBE4WfRP9TjyAyN/3KL7d5CKCMtwwrbtie4982hiLQJXDZ1Tj98LDKtvCVRgGZAdFXiVE2taEmsRLMuC2dvrPYYh4ncvjVQyMExKyGgCweMmHeOFSIvACt+rHq/q6CANW4895lhFhUFOtWtHqBDYJQQ+1Najw5XKE2QFNwJyJrCOCnt1dBFRFmFSnUSqfW/AqR8w3AM3BNLoAsf5RtIGUQiWZWGc9Kr3GJSPO8DgBzcGbhCFjVybqbcQuLrIx/DP1nftNHKnefLYsHQGEzpZhYAQOGfgCxAxnRwyZDKwi8Bsq8KgTlZBsgiBkzciiMeZcg8GjtpYBZ8QODbwpZFhDZBEMUSDUQTcp8Igl/F3Pb6EklRthPy6EUIyUPL23rcCmfimbduFR9mNVn2IiHYR0XZ+PM4PL4tENEtEV/iBn2en+2cW1fdThTDvXYMAU7fj4+eK/gyVJiTj+H3btgNp+iw0WnVc/ANE9FKOt3liun/mivfAfdfASRDfQhRjCdITkmfJ7R4arfr2Rqt+lojO5hTBFVUEYJXn50A2bPiVb+T4e70JRhBIPSslbrkyjY1W/RARHYl52Sy7Ai9D7Da8vCv9slcIvo0o8GFM3iAbG/atocuHfEIYxPL/LO6h0aqfZFeggov+Bi7sdP+MeHE977Gd44kDLJgAjhA4d6C4hTWFf0G9ApbwCaVtY9J0fhQRIjgMEUhBn8R0/8wsC+AoB5kBXIsQ2JZGl7UI3QgsKYbdWJ3tIW7rHx/sDlQR4MLv5gubiTDxuMGi7yQxWjAzjPlYtydw4yXeE4JNuRoT5BZBFK4QRr2vqe0w1iAvNcGiJtgQzEUKDEsTAejjFKgvPhgw1iA3AyMPS28xGve+nCfYpRw+XKYIiC1C4OQkNRvSgThBmHtIkmFUcwTu6KBURCEYi1AMQpwVaRE4olcDxMSjgzxACIHZsV6vRyyKhzc+qL5T3Eyk6hLAn9pxrn2quRIKMg0ZERJycSOHwKRR2bGBS0AIxhp0FNUitEUElGbJmyE9GayrmnxomxBWJXiNIeuXW0ttXdUJolRBIieixBSygK8uISCEDCdv6B6OhAScEru9M5EB13B3KXK7OUNFMTFCdyHVE7QFEyOUCLYATsmsYtrVmCGS6f6Z3WHPN1r1yNXOsAimd0FJoJg1JWoJWSoh5KGPu5zcJ4OKDSEI8VYz5rtSh4tDPBIonWCwGL03sSEFt4I3VdymW1LJmVShVDh9UvkUtrU35OfOtS9SCYGri1UxHGi06mrquRQhBGIEbDZpyAfiA6VUjRJYBAqZZDpZ9uXokzaMvD33edl/t/IIboGSFK9O98+8IcQKu7iGsTTcGOG89w8Y15CfJfk7TLpL67hw7EiZYnCF4FMqFmdkGPoYPCy+FxBCM+kmWzz1fFh4CmI4W0bM4AohoFS0vTFkAzeRsNV/qjUN0/0zR0NK1JBw+ghrHhqteqKlb0mGoE5mEd1JLMvyPYHeR2btYzZCbqLUq5ym+2fGG636bEiweIBHFMQjjStKQspdHZ1oRtKbYj7j3SkFDbCgbFOokp6bcvOwTNv0InhkMUTNLCadcQzFm1AKnKhxD+nBzSN0kTuTZxNOxAw8j7A7Zw3jIv/+uDoyub8/Aq9v8F15VNh85+/bcvzd3uPqrz92Hgo/LrJ1oGeTjMc91sDrAhY9F9pdJf1uVP2julFGYBv+5/78lFkHmYK/bZtTE0labMurzjUEVHv1VwF1G0LAzu1CNlGL7vQ+IfD6/QveYxgGmQRTMgSXQLyDbdcjVSgFNts0ViGeEGtwSpc2PwEhcFDjmzc3ViEajBTQHlBAm53aw2oWA+YMu4WZtLMMLKZQx3GqqJ3U2oEoBLYKvokomD10OzP4QUXXwu/E70WL2MAlqoo5sBUvgiHjIlaAhZx7+UPpqdd0awEYKgSuUzihHjcuYoXLB69JAWJTCri7nbh1DZNq4IgPfnH8qm6fs3AwSgjpELu/cj2d+AMFNotELj0kSu4JEBdEtPzTJkD0ErvSiV3Ea+pxBEi4K3oNiOAfP/i39Kkv6Nz3MXFLYKntH/XY7u2uCIShorZt/lzSrH3cr6afAUxkL1iGGBH0Tm9o/qA7pdU6VRdDhAjAhFQJrhupusXTyr7N59RWgFTRhuE33166N2SWRVBonUEnSS0EihEDWt+NvLWlEiVuIUUmLpURAWUVAq2I4bS6ayvxXs7PvLVF24IWrPS6OD4vVSK7VEoElEcI5O8kL24bhxZ4TvczjawDYh3kSEJcAQLDMV1zBVHkEgKtiOG4WuLmAuuw9dhw1w8xERD+5+BClBW4wFlD7QNDidxCcLEsC8mU34Q9j9gB1qHb3AXcAOKAkHSxyxldU8dJKUwItBI3TEXtMApBoDtMpy2EM338+o04AcAVTNq2rd0kUloKFYKL1D9SxW0siiFnu3pHYdYUazWuv/lplAtwOc9WQKvp5KyUIgRa6SoL6/BC3GuxfmLdizWnF1LRnWNg+lFDgdVHwsITiSYniTKtTNKV0oTgwl1LJpMIgjxthIZ2DDgCwQagSeMKmPv/YQHq+7ec/Qnwf6FeIIyecQMSpQvBJa0gJKReUzD3So/FtMACTFYtL5CWtgnBhV3GBE9iBTKTbQQjgalecwFhtF0IXrgN8RhPZgUylAWzzMmv07qsPmonHRWCFx567uR2N6Np2uOF0OQNQPA4V8VsYJF0jRAkWBw1FkZcGxxyN6MwFz0lRPR/fbSVrnq05BIAAAAASUVORK5CYII=\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('v-app',{attrs:{\"id\":\"vuetify-root\"}},[_c('v-content',{directives:[{name:\"resize\",rawName:\"v-resize\",value:(_vm.setWindowSize),expression:\"setWindowSize\"}],style:(_vm.overflowStyle)},[_c('router-view'),(_vm.isAuthenticated)?_c('loading-overlay'):_vm._e(),(_vm.isAuthenticated)?_c('auto-logout-modal'):_vm._e(),_c('status-snackbar')],1)],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('v-snackbar',{attrs:{\"top\":true,\"timeout\":_vm.statusTimeout,\"color\":_vm.statusLevel,\"multi-line\":true},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_vm._v(\"\\n \"+_vm._s(_vm.statusMessage)+\"\\n \"),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.closeSnackbar($event)}}},[_vm._v(\"Close\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusSnackbar.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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusSnackbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StatusSnackbar.vue?vue&type=template&id=89132f0c&\"\nimport script from \"./StatusSnackbar.vue?vue&type=script&lang=js&\"\nexport * from \"./StatusSnackbar.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/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VSnackbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('escalon-dialog',{attrs:{\"showModal\":_vm.showModal},on:{\"close\":_vm.logout,\"modalConfirm\":_vm.confirm,\"modalCancel\":_vm.logout}},[_c('template',{slot:\"header\"},[_vm._v(\"You have been idle\")]),_vm._v(\"\\n Do you want to remain logged in?\\n \"),_c('br'),_vm._v(\"\\n Time remaining until logout: \"+_vm._s(_vm.timeUntilLogout)+\"\\n\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutoLogoutModal.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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutoLogoutModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AutoLogoutModal.vue?vue&type=template&id=327c09f8&\"\nimport script from \"./AutoLogoutModal.vue?vue&type=script&lang=js&\"\nexport * from \"./AutoLogoutModal.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('v-overlay',{staticClass:\"loading-overlay\",attrs:{\"absolute\":\"\",\"value\":_vm.isLoading,\"z-index\":\"1000\",\"opacity\":\"0.7\"}},[_c('v-flex',{staticClass:\"text-center\"},[_c('h2',[_vm._v(_vm._s(_vm.loadingMessage))])]),_c('v-flex',{staticClass:\"text-center\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"60\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingOverlay.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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingOverlay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingOverlay.vue?vue&type=template&id=be702722&\"\nimport script from \"./LoadingOverlay.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingOverlay.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/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VFlex,VOverlay,VProgressCircular})\n","\r\n\r\n\r\n\r\n\r\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/vuetify-loader/lib/loader.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/vuetify-loader/lib/loader.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=752e35d9&\"\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&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/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VContent } from 'vuetify/lib/components/VContent';\ninstallComponents(component, {VApp,VContent})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\ninstallDirectives(component, {Resize})\n","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib\";\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n icons: {\r\n iconfont: \"fa\",\r\n values: {\r\n checkboxOn: \"far fa-check-circle\",\r\n checkboxOff: \"far fa-circle\",\r\n checkboxIndeterminate: \"far fa-circle\",\r\n sort: \"fas fa-arrow-up\"\r\n }\r\n },\r\n theme: {\r\n themes: {\r\n light: {\r\n primary: \"#ffffff\",\r\n secondary: \"#C5C5C5\",\r\n tertiary: \"#7f7f7f\",\r\n text: {\r\n green: \"#94C83B\",\r\n blue: \"#00b0f0\",\r\n gray: \"#7f7f7f\"\r\n }\r\n },\r\n dark: {\r\n primary: \"#000\",\r\n secondary: \"#2b292a\",\r\n tertiary: \"#131313\",\r\n text: {\r\n green: \"#94C83B\",\r\n blue: \"#00b0f0\",\r\n gray: \"#7f7f7f\"\r\n }\r\n },\r\n },\r\n \r\n dark: true,\r\n light: false\r\n }\r\n});\r\n","import moment from \"moment\";\r\nimport { isoDateFormat } from \"../helpers/dateUtils\";\r\n\r\nconst validate = (value, { format = isoDateFormat }) => {\r\n return moment(value, format, true).diff(moment()) < 0;\r\n}\r\n\r\nconst getMessage = (field) => {\r\n return \"The \" + field + \" value must be in the past.\";\r\n}\r\n\r\nconst paramNames = [ \"format\" ];\r\n\r\nexport default {\r\n getMessage,\r\n validate,\r\n paramNames\r\n}","import moment from \"moment\";\r\nimport { isoDateFormat, displayDateFormat } from \"../helpers/dateUtils\";\r\n\r\nconst validate = (value, { format = isoDateFormat }) => {\r\n return moment(value, format, true).isValid();\r\n}\r\n\r\nconst getMessage = (field) => {\r\n return \"The \" + field + \" value must be in the format \" + displayDateFormat + \".\";\r\n}\r\n\r\nconst paramNames = [ \"format\" ];\r\n\r\nexport default {\r\n getMessage,\r\n validate,\r\n paramNames\r\n}","import store from \"../../store\";\r\nexport default {\r\n computed: {\r\n colorClass(){\r\n let theme = store.getters.defaultColorTheme;\r\n switch (theme) {\r\n case \"green\":\r\n case \"white\":\r\n return \"greenTheme\";\r\n case \"gray\":\r\n return \"grayTheme\";\r\n default: \r\n return \"blueTheme\";\r\n }\r\n },\r\n colorHex() {\r\n let theme = store.getters.defaultColorTheme;\r\n switch (theme) {\r\n case \"green\":\r\n case \"white\":\r\n return \"#94C83B\";\r\n case \"gray\":\r\n return \"#7f7f7f\";\r\n default: \r\n return \"#00AEEF\";\r\n }\r\n },\r\n borderStyle() {\r\n return \"border-color: \" + this.colorHex + \" !important;\";\r\n },\r\n isLightTheme() {\r\n return store.getters.defaultColorTheme == \"white\";\r\n }, \r\n coloredLogo() {\r\n return (this.isLightTheme ? \"AXIS Logo for Light Backgrounds - Cropped.png\" : \"AXIS Logo for Dark Backgrounds - Cropped - Grayscale.png\");\r\n },\r\n tabClass() {\r\n return (this.isLightTheme ? \"lightTab\" : \"darkTab\");\r\n },\r\n coloredAssetUrls() {\r\n switch (store.getters.defaultColorTheme) {\r\n case \"gray\":\r\n return {\r\n close: \"Gray/Close - Gray.png\",\r\n dropdown: \"Gray/Drop Down Menu - Gray.png\",\r\n advancedSearch: \"Gray/Advanced Search - Gray.png\",\r\n addPatient: \"Gray/Add Patient - Gray.png\",\r\n editPatient: \"Gray/Edit Patient - Gray.png\",\r\n manualUpload: \"Gray/Manual Exam Upload - Gray.png\",\r\n multiview: \"Gray/Multiview - Gray.png\",\r\n proofsheet: \"Gray/Proofsheet - Gray.png\",\r\n refresh: \"Gray/Refresh - Gray.png\",\r\n stereo:\"Gray/gray-stereo-icon.png\",\r\n sideBySide: \"Gray/gray-sideBySide-icon.png\",\r\n montage: \"Gray/montage-icon-gray.svg\",\r\n overlay: \"Gray/gray-overlay-icon.png\",\r\n print: \"Gray/gray-print-icon.png\",\r\n annotate: \"Gray/gray-pencil-ruler-icon.png\",\r\n download: \"Gray/Download - Gray.png\",\r\n save: \"Gray/gray-save-icon.png\",\r\n clear: \"Gray/gray-trash-icon.png\",\r\n reset: \"Gray/gray-reset-icon.png\",\r\n erase: \"Gray/gray-erase-annotations-icon.png\",\r\n magnify: \"Gray/gray-zoom-icon.png\",\r\n nintyDegree: \"Gray/gray-90rotate-icon-clockwise.png\",\r\n oneEightyDegree: \"Gray/gray-180-rotate-icon-clockwise.png\",\r\n fitToWindow: \"Gray/gray-crop-icon.png\",\r\n drag: \"Gray/gray-hand-icon.png\",\r\n arrow: \"Gray/gray-arrow-line-icon.png\",\r\n text: \"Gray/gray-type-icon.png\",\r\n redacted: \"Gray/gray-redacted-icon.png\",\r\n outlined: \"Gray/gray-outlinebox-icon.png\",\r\n freehand: \"Gray/gray-squiggly-icon.png\",\r\n continuous: \"Gray/gray-contDrawing-icon.png\",\r\n angle: \"Gray/gray-compass-icon.png\",\r\n line: \"Gray/gray-measurements-line-icon.png\",\r\n area: \"Gray/gray-measurements-area-icon.png\",\r\n cupToDisc: \"Gray/gray-measurements-cupdisc-icon.png\",\r\n freehandArea: \"Gray/gray-measurements-freehandArea-icon.png\",\r\n pdt: \"Gray/gray-measurements-PDT-icon.png\",\r\n etdrs: \"Gray/gray-measurements-etdrsGrid-icon.png\",\r\n smallStandardCircles: \"Gray/gray-measurements-standardCircles-icon.png\",\r\n standardCircles: \"Gray/gray-measurements-standardCircles34-icon.png\",\r\n smallDrusenCircles: \"Gray/gray-measurements-drusen3-icon.png\",\r\n drusenCircles: \"Gray/gray-measurements-drusen2-icon.png\",\r\n drusenHalf: \"Gray/gray-measurements-drusenHalf-icon.png\",\r\n drusenCircle: \"Gray/gray-measurements-drusen1-icon.png\",\r\n rectangle: \"Gray/gray-squareArea-icon.png\",\r\n cursor: \"Gray/gray-cursor-icon.png\",\r\n microphone: \"Gray/Microphone - Gray.png\",\r\n teachingResearch: \"Gray/Teaching-Research Case - Gray.png\",\r\n physician: \"Gray/Physician - Gray.png\",\r\n diagnosis: \"Gray/Diagnosis - Gray.png\",\r\n editPathology: \"Gray/gray-pencil-icon.png\",\r\n reports: \"Gray/reports-icon-gray.svg\",\r\n usersBackground: \"Gray/Users-background-gray.svg\",\r\n physicianBackground: \"Gray/Physicians-background-gray.svg\",\r\n devicesBackground: \"Gray/Devices-background-gray.svg\",\r\n configure: \"Gray/Configure-background-gray.svg\",\r\n returnToAdmin: \"Gray/returnToAdmin-icon-gray.svg\",\r\n returnToSingleView: \"Gray/gray-Return to Single View - Icon.png\",\r\n calendar: \"Gray/calendar-gray.svg\",\r\n printButton: \"Gray/printbutton-gray.svg\",\r\n singleView: \"Gray/gray-Return to Single View - Icon.png\",\r\n markImage: \"Gray/markImages-Icon-gray.svg\",\r\n downloadCircle: \"Gray/downloadCircle-icon-gray.svg\",\r\n removeImages: \"Gray/removeimages-gray.svg\",\r\n submit: \"Gray/gray-Submit.png\",\r\n returnToOverlay: \"Gray/registerreturn-icon-gray.svg\",\r\n patientDownload: \"Download - White.png\",\r\n patientMic: \"Microphone - White.png\",\r\n patientPencil: \"White Icons/white-pencil-icon.png\",\r\n patientTeaching: \"Teaching-Research Case - White.png\",\r\n patientDiagnosis: \"Diagnosis - White.png\",\r\n patientTrash: \"Delete - White.png\",\r\n patientPhysician: \"Physician - White.png\",\r\n highlighter: \"Gray/highlighter-icon-gray.png\",\r\n expand: \"Gray/Expand_Icon_April_2022_gray.png\",\r\n minimize: \"Gray/Minimize_Icon_April_2022_gray.png\",\r\n lightbulb: \"White Icons/white-bulb-icon.png\",\r\n advance: \"Gray/AdvanceGray&Black.png\",\r\n mousezoom: \"Gray/ZoomGray&Black.png\",\r\n shapeOutline: \"Gray/shapeOutline_gray.png\",\r\n shapeFill: \"Gray/shapeFill_gray.png\"\r\n };\r\n case \"white\": \r\n return {\r\n close: \"Green/Close - Green.png\",\r\n dropdown: \"Green/Drop Down Menu - Green.png\",\r\n advancedSearch: \"Green/Advanced Search - Green.png\",\r\n addPatient: \"Green/Add Patient - Green.png\",\r\n editPatient: \"Green/Edit Patient - Green.png\",\r\n manualUpload: \"Green/Manual Exam Upload - Green.png\",\r\n multiview: \"Green/Multiview - Green.png\",\r\n proofsheet: \"Green/Proofsheet - Green.png\",\r\n refresh: \"Green/Refresh - Green.png\",\r\n stereo:\"Green/green-stereo-icon.png\",\r\n sideBySide: \"Green/green-sideBySide-icon.png\",\r\n montage: \"Green/montage-icon-green.svg\",\r\n overlay: \"Green/green-overlay-icon.png\",\r\n print: \"Green/green-print-icon.png\",\r\n annotate: \"Green/green-pencil-ruler-icon.png\",\r\n download: \"Green/Download - Green.png\",\r\n save: \"Green/green-save-icon.png\",\r\n clear: \"Green/green-trash-icon.png\",\r\n reset: \"Green/green-reset-icon.png\",\r\n erase: \"Green/green-erase-annotations-icon.png\",\r\n magnify: \"Green/green-zoom-icon.png\",\r\n nintyDegree: \"Green/green-90rotate-icon.png\",\r\n oneEightyDegree: \"Green/green-180-rotate-icon.png\",\r\n fitToWindow: \"Green/green-crop-icon.png\",\r\n drag: \"Green/green-hand-icon.png\",\r\n arrow: \"Green/green-arrow-line-icon.png\",\r\n text: \"Green/green-type-icon.png\",\r\n redacted: \"Green/green-redacted-icon.png\",\r\n outlined: \"Green/green-outlinebox-icon.png\",\r\n freehand: \"Green/green-squiggly-icon.png\",\r\n continuous: \"Green/green-contDrawing-icon.png\",\r\n angle: \"Green/green-compass-icon.png\",\r\n line: \"Green/green-measurements-line-icon.png\",\r\n area: \"Green/green-measurements-area-icon.png\",\r\n cupToDisc: \"Green/green-measurements-cupdisc-icon.png\",\r\n freehandArea: \"Green/green-measurements-freehandArea-icon.png\",\r\n pdt: \"Green/green-measurements-PDT-icon.png\",\r\n etdrs: \"Green/green-measurements-etdrsGrid-icon.png\",\r\n smallStandardCircles: \"Green/green-measurements-standardCircles-icon.png\",\r\n standardCircles: \"Green/green-measurements-standardCircles34-icon.png\",\r\n smallDrusenCircles: \"Green/green-measurements-drusen3-icon.png\",\r\n drusenCircles: \"Green/green-measurements-drusen2-icon.png\",\r\n drusenHalf: \"Green/green-measurements-drusenHalf-icon.png\",\r\n drusenCircle: \"Green/green-measurements-drusen1-icon.png\",\r\n rectangle: \"Green/green-squareArea-icon.png\",\r\n cursor: \"Green/green-cursor-icon.png\",\r\n microphone: \"Green/Microphone - Green.png\",\r\n teachingResearch: \"Green/Teaching-Research Case - Green.png\",\r\n physician: \"Green/Physician - Green.png\",\r\n diagnosis: \"Green/Diagnosis - Green.png\",\r\n editPathology: \"Green/green-pencil-icon.png\",\r\n reports: \"Green/reports-icon-green.svg\",\r\n usersBackground: \"Green/Users-background-green.svg\",\r\n physicianBackground: \"Green/Physicians-background-green.svg\",\r\n devicesBackground: \"Green/Devices-background-green.svg\",\r\n configure: \"Green/Configure-background-green.svg\",\r\n returnToAdmin: \"Green/returnToAdmin-icon-green.svg\",\r\n returnToSingleView: \"Green/green-Return to Single View - Icon.png\",\r\n calendar: \"Green/calendar-green.svg\",\r\n printButton: \"Green/printbutton-green.svg\",\r\n singleView: \"Green/green-Return to Single View - Icon.png\",\r\n markImage: \"Green/markImages-Icon-green.svg\",\r\n downloadCircle: \"Green/downloadCircle-icon-green.svg\",\r\n submit: \"Green/green-Submit.png\",\r\n removeImages: \"Green/removeimages-green.svg\",\r\n returnToOverlay: \"Green/registerreturn-icon-green.svg\",\r\n patientDownload: \"Download - Dark Gray.png\",\r\n patientMic: \"Gray/Microphone - Gray.png\",\r\n patientPencil: \"Gray/gray-pencil-icon.png\",\r\n patientTeaching: \"Teaching-Research Case - Dark Gray.png\",\r\n patientDiagnosis: \"Diagnosis - Dark Gray.png\",\r\n patientTrash: \"Delete - Dark Gray.png\",\r\n patientPhysician: \"Physician - Drak Gray.png\",\r\n highlighter: \"Green/highlighter-icon-green.png\",\r\n expand: \"Green/Expand_Icon_April_2022_green.png\",\r\n minimize: \"Green/Minimize_Icon_April_2022_green.png\",\r\n lightbulb: \"Best Practices and Tips Bullet Point.png\",\r\n advance: \"Green/AdvanceGreen&White.png\",\r\n mousezoom: \"Green/ZoomGreen&White.png\",\r\n shapeOutline: \"Green/shapeOutline_green.png\",\r\n shapeFill: \"Green/shapeFill_green.png\"\r\n };\r\n case \"green\": \r\n return {\r\n close: \"Green/Close - Green.png\",\r\n dropdown: \"Green/Drop Down Menu - Green.png\",\r\n advancedSearch: \"Green/Advanced Search - Green.png\",\r\n addPatient: \"Green/Add Patient - Green.png\",\r\n editPatient: \"Green/Edit Patient - Green.png\",\r\n manualUpload: \"Green/Manual Exam Upload - Green.png\",\r\n multiview: \"Green/Multiview - Green.png\",\r\n proofsheet: \"Green/Proofsheet - Green.png\",\r\n refresh: \"Green/Refresh - Green.png\",\r\n stereo:\"Green/green-stereo-icon.png\",\r\n sideBySide: \"Green/green-sideBySide-icon.png\",\r\n montage: \"Green/montage-icon-green.svg\",\r\n overlay: \"Green/green-overlay-icon.png\",\r\n print: \"Green/green-print-icon.png\",\r\n annotate: \"Green/green-pencil-ruler-icon.png\",\r\n download: \"Green/Download - Green.png\",\r\n save: \"Green/green-save-icon.png\",\r\n clear: \"Green/green-trash-icon.png\",\r\n reset: \"Green/green-reset-icon.png\",\r\n erase: \"Green/green-erase-annotations-icon.png\",\r\n magnify: \"Green/green-zoom-icon.png\",\r\n nintyDegree: \"Green/green-90rotate-icon.png\",\r\n oneEightyDegree: \"Green/green-180-rotate-icon.png\",\r\n fitToWindow: \"Green/green-crop-icon.png\",\r\n drag: \"Green/green-hand-icon.png\",\r\n arrow: \"Green/green-arrow-line-icon.png\",\r\n text: \"Green/green-type-icon.png\",\r\n redacted: \"Green/green-redacted-icon.png\",\r\n outlined: \"Green/green-outlinebox-icon.png\",\r\n freehand: \"Green/green-squiggly-icon.png\",\r\n continuous: \"Green/green-contDrawing-icon.png\",\r\n angle: \"Green/green-compass-icon.png\",\r\n line: \"Green/green-measurements-line-icon.png\",\r\n area: \"Green/green-measurements-area-icon.png\",\r\n cupToDisc: \"Green/green-measurements-cupdisc-icon.png\",\r\n freehandArea: \"Green/green-measurements-freehandArea-icon.png\",\r\n pdt: \"Green/green-measurements-PDT-icon.png\",\r\n etdrs: \"Green/green-measurements-etdrsGrid-icon.png\",\r\n smallStandardCircles: \"Green/green-measurements-standardCircles-icon.png\",\r\n standardCircles: \"Green/green-measurements-standardCircles34-icon.png\",\r\n smallDrusenCircles: \"Green/green-measurements-drusen3-icon.png\",\r\n drusenCircles: \"Green/green-measurements-drusen2-icon.png\",\r\n drusenHalf: \"Green/green-measurements-drusenHalf-icon.png\",\r\n drusenCircle: \"Green/green-measurements-drusen1-icon.png\",\r\n rectangle: \"Green/green-squareArea-icon.png\",\r\n cursor: \"Green/green-cursor-icon.png\",\r\n microphone: \"Green/Microphone - Green.png\",\r\n teachingResearch: \"Green/Teaching-Research Case - Green.png\",\r\n physician: \"Green/Physician - Green.png\",\r\n diagnosis: \"Green/Diagnosis - Green.png\",\r\n editPathology: \"Green/green-pencil-icon.png\",\r\n reports: \"Green/reports-icon-green.svg\",\r\n usersBackground: \"Green/Users-background-green.svg\",\r\n physicianBackground: \"Green/Physicians-background-green.svg\",\r\n devicesBackground: \"Green/Devices-background-green.svg\",\r\n configure: \"Green/Configure-background-green.svg\",\r\n returnToAdmin: \"Green/returnToAdmin-icon-green.svg\",\r\n returnToSingleView: \"Green/green-Return to Single View - Icon.png\",\r\n calendar: \"Green/calendar-green.svg\",\r\n printButton: \"Green/printbutton-green.svg\",\r\n singleView: \"Green/green-Return to Single View - Icon.png\",\r\n markImage: \"Green/markImages-Icon-green.svg\",\r\n downloadCircle: \"Green/downloadCircle-icon-green.svg\",\r\n removeImages: \"Green/removeimages-green.svg\",\r\n submit: \"Green/green-Submit.png\",\r\n returnToOverlay: \"Green/registerreturn-icon-green.svg\",\r\n patientDownload: \"Download - White.png\",\r\n patientMic: \"Microphone - White.png\",\r\n patientPencil: \"White Icons/white-pencil-icon.png\",\r\n patientTeaching: \"Teaching-Research Case - White.png\",\r\n patientDiagnosis: \"Diagnosis - White.png\",\r\n patientTrash: \"Delete - White.png\",\r\n patientPhysician: \"Physician - White.png\",\r\n highlighter: \"Green/highlighter-icon-green.png\",\r\n expand: \"Green/Expand_Icon_April_2022_green.png\",\r\n minimize: \"Green/Minimize_Icon_April_2022_green.png\",\r\n lightbulb: \"White Icons/white-bulb-icon.png\",\r\n advance: \"Green/AdvanceGreen&Black.png\",\r\n mousezoom: \"Green/ZoomGreen&Black.png\",\r\n shapeOutline: \"Green/shapeOutline_green.png\",\r\n shapeFill: \"Green/shapeFill_green.png\"\r\n };\r\n default:\r\n return {\r\n close: \"Blue/Close - Blue.png\",\r\n dropdown: \"Blue/Drop Down Menu - Blue.png\",\r\n advancedSearch: \"Blue/Advanced Search - Blue.png\",\r\n addPatient: \"Blue/Add Patient - Blue.png\",\r\n editPatient: \"Blue/Edit Patient - Blue.png\",\r\n manualUpload: \"Blue/Manual Exam Upload - Blue.png\",\r\n multiview: \"Blue/Multiview - Blue.png\",\r\n proofsheet: \"Blue/Proofsheet - Blue.png\",\r\n refresh: \"Blue/Refresh - Blue.png\",\r\n stereo:\"Blue/blue-stereo-icon.png\",\r\n sideBySide: \"Blue/blue-sideBySide-icon.png\",\r\n montage: \"Blue/montage-icon-blue.svg\",\r\n overlay: \"Blue/blue-overlay-icon.png\",\r\n print: \"Blue/blue-print-icon.png\",\r\n annotate: \"Blue/blue-pencil-ruler-icon.png\",\r\n download: \"Blue/Download - Blue.png\",\r\n save: \"Blue/blue-save-icon.png\",\r\n clear: \"Blue/blue-trash-icon.png\",\r\n reset: \"Blue/blue-reset-icon.png\",\r\n erase: \"Blue/blue-erase-annotations-icon.png\",\r\n magnify: \"Blue/blue-zoom-icon.png\",\r\n nintyDegree: \"Blue/blue-90rotate-icon.png\",\r\n oneEightyDegree: \"Blue/blue-180-rotate-icon.png\",\r\n fitToWindow: \"Blue/blue-crop-icon.png\",\r\n drag: \"Blue/blue-hand-icon.png\",\r\n arrow: \"Blue/blue-arrow-line-icon.png\",\r\n text: \"Blue/blue-type-icon.png\",\r\n redacted: \"Blue/blue-redacted-icon.png\",\r\n outlined: \"Blue/blue-outlinebox-icon.png\",\r\n freehand: \"Blue/blue-squiggly-icon.png\",\r\n continuous: \"Blue/blue-contDrawing-icon.png\",\r\n angle: \"Blue/blue-compass-icon.png\",\r\n line: \"Blue/blue-measurements-line-icon.png\",\r\n area: \"Blue/blue-measurements-area-icon.png\",\r\n cupToDisc: \"Blue/blue-measurements-cupdisc-icon.png\",\r\n freehandArea: \"Blue/blue-measurements-freehandArea-icon.png\",\r\n pdt: \"Blue/blue-measurements-PDT-icon.png\",\r\n etdrs: \"Blue/blue-measurements-etdrsGrid-icon.png\",\r\n smallStandardCircles: \"Blue/blue-measurements-standardCircles-icon.png\",\r\n standardCircles: \"Blue/blue-measurements-standardCircles34-icon.png\",\r\n smallDrusenCircles: \"Blue/blue-measurements-drusen3-icon.png\",\r\n drusenCircles: \"Blue/blue-measurements-drusen2-icon.png\",\r\n drusenHalf: \"Blue/blue-measurements-drusenHalf-icon.png\",\r\n drusenCircle: \"Blue/blue-measurements-drusen1-icon.png\",\r\n rectangle: \"Blue/blue-squareArea-icon.png\",\r\n cursor: \"Blue/blue-cursor-icon.png\",\r\n microphone: \"Blue/Microphone - Blue.png\",\r\n teachingResearch: \"Blue/Teaching-Research Case - Blue.png\",\r\n physician: \"Blue/Physician - Blue.png\",\r\n diagnosis: \"Blue/Diagnosis - Blue.png\",\r\n editPathology: \"Blue/blue-pencil-icon.png\",\r\n reports: \"Blue/reports-icon-blue.svg\",\r\n usersBackground: \"Blue/Users-background-blue.svg\",\r\n physicianBackground: \"Blue/Physicians-background-blue.svg\",\r\n devicesBackground: \"Blue/Devices-background-blue.svg\",\r\n configure: \"Blue/Configure-background-blue.svg\",\r\n returnToAdmin: \"Blue/returnToAdmin-icon-blue.svg\",\r\n returnToSingleView: \"Blue/blue-Return to Single View - Icon.jpg\",\r\n calendar: \"Blue/calendar-blue.svg\",\r\n printButton: \"Blue/printbutton-blue.svg\",\r\n singleView: \"Blue/blue-Return to Single View - Icon.jpg\",\r\n markImage: \"Blue/markImages-Icon-blue.svg\",\r\n downloadCircle: \"Blue/downloadCircle-icon-blue.svg\",\r\n removeImages: \"Blue/removeimages-blue.svg\",\r\n submit: \"Blue/Submit_-_Blue.png\",\r\n returnToOverlay: \"Blue/registerreturn-icon-blue.svg\",\r\n patientDownload: \"Download - White.png\",\r\n patientMic: \"Microphone - White.png\",\r\n patientPencil: \"White Icons/white-pencil-icon.png\",\r\n patientTeaching: \"Teaching-Research Case - White.png\",\r\n patientDiagnosis: \"Diagnosis - White.png\",\r\n patientTrash: \"Delete - White.png\",\r\n patientPhysician: \"Physician - White.png\",\r\n highlighter: \"Blue/highlighter-icon-blue.png\",\r\n expand: \"Blue/Expand_Icon_April_2022_blue.png\",\r\n minimize: \"Blue/Minimize_Icon_April_2022_blue.png\",\r\n lightbulb: \"White Icons/white-bulb-icon.png\",\r\n advance: \"Blue/AdvanceBlue&Black.png\",\r\n mousezoom: \"Blue/ZoomBlue&Black.png\",\r\n shapeOutline: \"Blue/shapeOutline_blue.png\",\r\n shapeFill: \"Blue/shapeFill_blue.png\"\r\n };\r\n }\r\n },\r\n activeAnnotationIcons() {\r\n switch (store.getters.defaultColorTheme) {\r\n case \"white\":\r\n return {\r\n erase: \"Gray/gray-erase-annotations-icon.png\",\r\n magnify: \"Gray/gray-zoom-icon.png\",\r\n nintyDegree: \"Gray/gray-90rotate-icon.png\",\r\n oneEightyDegree: \"Gray/gray-180-rotate-icon.png\",\r\n drag: \"Gray/gray-hand-icon.png\",\r\n arrow: \"Gray/gray-arrow-line-icon.png\",\r\n text: \"Gray/gray-type-icon.png\",\r\n redacted: \"Gray/gray-redacted-icon.png\",\r\n outlined: \"Gray/gray-outlinebox-icon.png\",\r\n freehand: \"Gray/gray-squiggly-icon.png\",\r\n continuous: \"Gray/gray-contDrawing-icon.png\",\r\n angle: \"Gray/gray-compass-icon.png\",\r\n line: \"Gray/gray-measurements-line-icon.png\",\r\n area: \"Gray/gray-measurements-area-icon.png\",\r\n cupToDisc: \"Gray/gray-measurements-cupdisc-icon.png\",\r\n freehandArea: \"Gray/gray-measurements-freehandArea-icon.png\",\r\n pdt: \"Gray/gray-measurements-PDT-icon.png\",\r\n etdrs: \"Gray/gray-measurements-etdrsGrid-icon.png\",\r\n smallStandardCircles: \"Gray/gray-measurements-standardCircles-icon.png\",\r\n standardCircles: \"Gray/gray-measurements-standardCircles34-icon.png\",\r\n smallDrusenCircles: \"Gray/gray-measurements-drusen3-icon.png\",\r\n drusenCircles: \"Gray/gray-measurements-drusen2-icon.png\",\r\n drusenHalf: \"Gray/gray-measurements-drusenHalf-icon.png\",\r\n drusenCircle: \"Gray/gray-measurements-drusen1-icon.png\",\r\n rectangle: \"Gray/gray-squareArea-icon.png\",\r\n cursor: \"Gray/gray-cursor-icon.png\",\r\n annotate: \"Gray/gray-pencil-ruler-icon.png\",\r\n highlighter: \"Gray/highlighter-icon-gray.png\",\r\n expand: \"Gray/Expand_Icon_April_2022_gray.png\",\r\n minimize: \"Gray/Minimize_Icon_April_2022_gray.png\",\r\n advance: \"Gray/AdvanceGray&White.png\",\r\n mousezoom: \"Gray/ZoomGray&White.png\",\r\n shapeOutline: \"Gray/shapeOutline_gray.png\",\r\n shapeFill: \"White/shapeFill_white.png\",\r\n };\r\n default: \r\n return {\r\n erase: \"White Icons/erase-annotations-icon.png\",\r\n magnify: \"White Icons/magnify-white-icon.png\",\r\n nintyDegree: \"White Icons/white-90-rotate-clockwise-icon(1).png\",\r\n oneEightyDegree: \"White Icons/rotate-white-icon.png\",\r\n drag: \"White Icons/hand-white-icon.png\",\r\n arrow: \"White Icons/arrow-whiteIcon.png\",\r\n text: \"White Icons/test-white-icon.png\",\r\n redacted: \"White Icons/redact-white-icon.png\",\r\n outlined: \"White Icons/outlinebox-white-icon.png\",\r\n freehand: \"White Icons/freedraw-white-icon.png\",\r\n continuous: \"White Icons/white-contDrawing-icon.png\",\r\n angle: \"White Icons/compass-white-icon.png\",\r\n line: \"White Icons/measurements-line-icon.png\",\r\n area: \"White Icons/measurements-area-icon.png\",\r\n cupToDisc: \"White Icons/measurements-cupdisc-icon.png\",\r\n freehandArea: \"White Icons/measurements-freehandArea-icon.png\",\r\n pdt: \"White Icons/measurements-PDT-icon.png\",\r\n etdrs: \"White Icons/measurements-etdrsGrid-icon.png\",\r\n smallStandardCircles: \"White Icons/measurements-standardCircles-icon.png\",\r\n standardCircles: \"White Icons/measurements-standardCircles34-icon.png\",\r\n smallDrusenCircles: \"White Icons/measurements-drusen3-icon.png\",\r\n drusenCircles: \"White Icons/measurements-drusen2-icon.png\",\r\n drusenHalf: \"White Icons/measurements-drusenHalf-icon.png\",\r\n drusenCircle: \"White Icons/measurements-drusen1-icon.png\",\r\n rectangle: \"White Icons/white-squareArea-icon.png\",\r\n cursor: \"White Icons/arrow-white-icon.png\",\r\n annotate: \"White Icons/annotate-white-icon.png\",\r\n highlighter: \"White Icons/highlighter-icon-white.png\",\r\n expand: \"White Icons/Expand_Icon_April_2022_white.png\",\r\n minimize: \"White Icons/Minimize_Icon_April_2022_white.png\",\r\n advance: \"Gray/AdvanceWhite&Black.png\",\r\n mousezoom: \"Gray/ZoomWhite&Black.png\",\r\n shapeOutline: \"White/shapeOutline_white.png\",\r\n shapeFill: \"White/shapeFill_white.png\"\r\n };\r\n }\r\n }\r\n }\r\n}","import \"babel-polyfill\";\r\nimport Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport { sync } from \"vuex-router-sync\";\r\nimport vuetify from \"./plugins/vuetify\";\r\nimport VeeValidate from \"vee-validate\";\r\nimport { Validator } from \"vee-validate\";\r\nimport inPast from \"./validationRules/inPast\";\r\nimport date from \"./validationRules/date\";\r\nimport VueMoment from \"vue-moment\";\r\nimport { VueHammer } from \"vue2-hammer\";\r\nimport \"nprogress/nprogress.css\";\r\nimport \"@fortawesome/fontawesome-free/css/all.css\";\r\nimport \"./styles/site.scss\";\r\nimport { logDetailed } from \"./helpers/utils\";\r\nimport colorThemeMixin from \"./components/mixins/ColorThemeMixin\";\r\nwindow.__webpack_public_path__ = window.clientBaseURL || process.env.VUE_APP_CLIENT_BASEURL || \"/\";\r\n\r\nlogDetailed(\"main\", \"root\", \"entering main\");\r\n\r\nValidator.extend(\"inPast\", inPast);\r\nValidator.extend(\"date\", date);\r\nVue.use(VeeValidate, {\r\n inject: true,\r\n events: \"change\",\r\n fieldsBagName: \"veeFields\"\r\n});\r\n\r\nVue.use(VueMoment);\r\nVue.use(VueHammer);\r\nVue.mixin(colorThemeMixin);\r\n\r\nVue.config.productionTip = false;\r\n\r\nsync(store, router);\r\n\r\nif (document.addEventListener)\r\n{\r\n document.addEventListener('fullscreenchange', exitHandler, false);\r\n document.addEventListener('mozfullscreenchange', exitHandler, false);\r\n document.addEventListener('MSFullscreenChange', exitHandler, false);\r\n document.addEventListener('webkitfullscreenchange', exitHandler, false);\r\n}\r\n\r\nfunction exitHandler()\r\n{\r\n if (!document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement)\r\n store.commit(\"resetFullscreen\");\r\n}\r\n\r\nvar preLoadTask = store.dispatch(\"initialize\");\r\n\r\npreLoadTask.finally(() => {\r\n new Vue({\r\n router,\r\n store,\r\n vuetify,\r\n render: h => h(App)\r\n }).$mount(\"#app\");\r\n});","module.exports = __webpack_public_path__ + \"img/ZoomGreen&Black.fb89a1a9.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAHQCAYAAACWQBBDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0xMi0xOFQxNDoxNTo0MS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTc6MDA6MjMtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTc6MDA6MjMtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NGMwZWYzMzAtN2M4Mi04YjRmLThmYWItYThiYjU0ODg1YTIyIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YjgwZGQyOTUtYTZmOS1iNjRjLTkxODctN2VhNGIyMGZkNjA4IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTY0YzcwYWEtNDkzMC05YzQxLTllMTEtZTAyYmYyNmRiMWQ5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNjRjNzBhYS00OTMwLTljNDEtOWUxMS1lMDJiZjI2ZGIxZDkiIHN0RXZ0OndoZW49IjIwMTgtMTItMThUMTQ6MTU6NDEtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmEyMTE3N2U5LWVhYzctNzQ0YS1hY2M5LTgxZmFkZmRmYWVlZiIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNzowMDoyMy0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NGMwZWYzMzAtN2M4Mi04YjRmLThmYWItYThiYjU0ODg1YTIyIiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDE3OjAwOjIzLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg7VS6MAAAbcSURBVHja7dzRTSs7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\"","module.exports = __webpack_public_path__ + \"img/Delete - White - Selected.72ac3a0e.png\";","module.exports = __webpack_public_path__ + \"img/Download - Pink - Selected.70db83b6.png\";","import { POINTER_CLASSES, Directions } from \"../config/config\";\r\n// import { logDetailed } from \"../helpers/utils\";\r\nimport { boxSize } from \"./canvasUtils\";\r\n\r\n\r\n// determines if a given point is close to a given line segment\r\n// line segment is defined by the points p1, p2\r\nexport function isInBoundsLine(x, y, p1x, p1y, p2x, p2y, range) {\r\n if (!range) range = boxSize;\r\n if (x < Math.min(p1x, p2x) - range) return false;\r\n if (y < Math.min(p1y, p2y) - range) return false;\r\n if (x > Math.max(p1x, p2x) + range) return false;\r\n if (y > Math.max(p1y, p2y) + range) return false;\r\n\r\n let dy = p2y - p1y;\r\n let dx = p2x - p1x;\r\n\r\n let numerator = Math.abs(dy * x - dx * y\r\n + p2x * p1y - p2y * p1x);\r\n let denominator = Math.sqrt(dy * dy + dx * dx);\r\n let distance = numerator / denominator;\r\n return distance <= range;\r\n}\r\n\r\nexport function displayAngle(angleRad) {\r\n return (angleRad * 180 / Math.PI).toFixed(1) + \"°\";\r\n}\r\n\r\nexport function normalizeAngle(angle) {\r\n while (angle < -Math.PI) angle += 2 * Math.PI;\r\n while (angle > Math.PI) angle -= 2 * Math.PI;\r\n return angle;\r\n}\r\n\r\nexport function segmentLengthPoints(p1, p2) {\r\n let dx = p2.x - p1.x;\r\n let dy = p2.y - p1.y;\r\n return segmentLengthDisp(dx, dy);\r\n}\r\n\r\nexport function segmentLengthDisp(dx, dy) {\r\n return Math.sqrt(dx * dx + dy * dy);\r\n}\r\n\r\nexport const sidesFlag = {\r\n top: 1,\r\n left: 2,\r\n right: 4,\r\n bottom: 8\r\n};\r\n\r\nexport const sidesAndCorners = [\r\n sidesFlag.top,\r\n sidesFlag.left,\r\n sidesFlag.left | sidesFlag.top,\r\n sidesFlag.right,\r\n sidesFlag.right | sidesFlag.top,\r\n sidesFlag.bottom,\r\n sidesFlag.bottom | sidesFlag.left,\r\n sidesFlag.bottom | sidesFlag.right\r\n];\r\n\r\nexport const sideCornerDetails = {\r\n [sidesFlag.top]: {\r\n theta: -Math.PI / 2,\r\n side: sidesFlag.top,\r\n hoverClass: POINTER_CLASSES.nsResize\r\n },\r\n [sidesFlag.left]: {\r\n theta: Math.PI,\r\n side: sidesFlag.left,\r\n hoverClass: POINTER_CLASSES.ewResize\r\n },\r\n [sidesFlag.top | sidesFlag.left]: {\r\n theta: -3 * Math.PI / 4,\r\n side: sidesFlag.top | sidesFlag.left,\r\n hoverClass: POINTER_CLASSES.nwseResize\r\n },\r\n [sidesFlag.right]: {\r\n theta: 0,\r\n side: sidesFlag.right,\r\n hoverClass: POINTER_CLASSES.ewResize\r\n },\r\n [sidesFlag.top | sidesFlag.right]: {\r\n theta: -Math.PI / 4,\r\n side: sidesFlag.top | sidesFlag.right,\r\n hoverClass: POINTER_CLASSES.neswResize\r\n },\r\n [sidesFlag.bottom]: {\r\n theta: Math.PI / 2,\r\n side: sidesFlag.bottom,\r\n hoverClass: POINTER_CLASSES.nsResize\r\n },\r\n [sidesFlag.bottom | sidesFlag.left]: {\r\n theta: 3 * Math.PI / 4,\r\n side: sidesFlag.bottom | sidesFlag.left,\r\n hoverClass: POINTER_CLASSES.neswResize\r\n },\r\n [sidesFlag.bottom | sidesFlag.right]: {\r\n theta: Math.PI / 4,\r\n side: sidesFlag.bottom | sidesFlag.right,\r\n hoverClass: POINTER_CLASSES.nwseResize\r\n }\r\n};\r\n\r\nexport function isInBoundsBox(x, y, boxX, boxY, zoomLevel = 1.0, size = boxSize) {\r\n return Math.abs(x - boxX) < Math.max(size/zoomLevel, size) && Math.abs(y - boxY) < Math.max(size/zoomLevel, size);\r\n}\r\n\r\nexport function angleOffset(length, theta) {\r\n return { x: length * Math.cos(theta), y: length * Math.sin(theta) };\r\n}\r\n\r\nexport function findIntersectionLastSegment(points) {\r\n let p1 = points[points.length - 1];\r\n let p2 = points[points.length - 2];\r\n return findIntersection(points, p1, p2, 3, 0);\r\n}\r\n\r\nexport function findIntersectionClosingSegment(points) {\r\n let p1 = points[points.length - 1];\r\n let p2 = points[0];\r\n return findIntersection(points, p1, p2, 2, 1);\r\n}\r\n\r\n// find an intersection in a point chain, starting from the end\r\nexport function findIntersection(points, p1, p2, fromEnd, fromStart) {\r\n // note: skipping the check of {l-1,l-2} against {l-2,l-3} \r\n // because that has a trivial intersection at l-2\r\n for (let i = points.length - fromEnd; i > fromStart; i--) {\r\n let p3 = points[i];\r\n let p4 = points[i - 1];\r\n\r\n let intersect = segmentIntersection(p1, p2, p3, p4);\r\n if (intersect) return { index: i, intersect };\r\n }\r\n return { index: -1, intersect: null };\r\n}\r\n\r\n// check if the two line segments defined by {p1,p2} and {p3,p4} have an intersection\r\n// see: http://www.cs.swan.ac.uk/~cssimon/line_intersection.html\r\nexport function segmentIntersection(p1, p2, p3, p4) {\r\n let dx1 = p2.x - p1.x;\r\n let dy1 = p2.y - p1.y;\r\n let dx2 = p4.x - p3.x;\r\n let dy2 = p4.y - p3.y;\r\n\r\n let determinant = dx1 * dy2 - dx2 * dy1;\r\n if (determinant == 0) return null;\r\n\r\n let cdx = p1.x - p3.x;\r\n let cdy = p1.y - p3.y;\r\n\r\n let s = (dx1 * cdy - dy1 * cdx) / determinant;\r\n let t = (dx2 * cdy - dy2 * cdx) / determinant;\r\n\r\n let intersection = null;\r\n let intersectionFound = s >= 0 && s <= 1 && t >= 0 && t <= 1;\r\n if (intersectionFound) intersection = {\r\n x: p1.x + t * dx1,\r\n y: p1.y + t * dy1\r\n };\r\n\r\n return intersection;\r\n}\r\n\r\n// calculate the area of a polygon defined by a list of points\r\nexport function polygonArea(points) {\r\n let area = 0;\r\n let j = points.length - 1;\r\n for (let i = 0; i < points.length; i++) {\r\n let pj = points[j];\r\n let pi = points[i];\r\n area += (pi.x * pj.y) - (pi.y * pj.x);\r\n j = i;\r\n }\r\n return Math.abs(area / 2);\r\n}\r\n\r\nexport function getArcPosition(centerX, centerY, radiusX, radiusY, theta) {\r\n return {\r\n x: centerX + radiusX * Math.cos(theta),\r\n y: centerY + radiusY * Math.sin(theta)\r\n };\r\n}\r\n\r\nexport function defaultSize() {\r\n return {\r\n w: 0,\r\n h: 0\r\n };\r\n}\r\n\r\nexport function defaultOffset(){\r\n return {\r\n x: 0,\r\n y: 0\r\n };\r\n}\r\n\r\nexport function sizesEqual(a, b){\r\n if (a === b || !a || !b) return true;\r\n return (a.width || a.w || 0) == (b.width || b.w || 0)\r\n && (a.height || a.h || 0) == (b.height || b.h || 0);\r\n}\r\n\r\nexport function setSize(local, external) {\r\n if (!local || !external) return;\r\n\r\n local.w = external.w || external.width || external.pixelWidth || 0;\r\n local.h = external.h || external.height || external.pixelHeight || 0;\r\n}\r\n\r\nexport function resizeCanvas(canvas, fit, zoom, floor) {\r\n if (!canvas || !fit || !zoom || !floor) return;\r\n\r\n let fitW = fit.w * zoom, fitH = fit.h * zoom;\r\n canvas.w = fitW < floor.w ? floor.w : fitW;\r\n canvas.h = fitH < floor.h ? floor.h : fitH;\r\n}\r\n\r\nexport function defaultTransform() {\r\n return {\r\n // location on the image that should be centered, as a fraction of the image size\r\n centerX: 0.5,\r\n centerY: 0.5,\r\n\r\n // zoom level of the main image\r\n zoom: 1,\r\n defaultZoom: null,\r\n\r\n // zoom bounds\r\n fitZoom: 1,\r\n maxZoom: 3,\r\n minZoom: 0.05,\r\n\r\n offsetX: 0,\r\n offsetY: 0,\r\n\r\n canvasSize: defaultSize(),\r\n flippedSize: defaultSize(),\r\n imgSize: defaultSize(),\r\n flippedImgSize: defaultSize()\r\n };\r\n}\r\n\r\nexport function setTransform(local, external){\r\n local.centerX = external.centerX || 0;\r\n local.centerY = external.centerY || 0;\r\n local.zoom = external.zoom || 0;\r\n local.fitZoom = external.fitZoom || 0;\r\n local.maxZoom = external.maxZoom || 0;\r\n local.offsetX = external.offsetX || 0;\r\n local.offsetY = external.offsetY || 0;\r\n setSize(local.canvasSize, external.canvasSize);\r\n setSize(local.imgSize, external.imgSize);\r\n}\r\n\r\nexport function getZoom(parentSize, childSize) {\r\n return Math.min(parentSize.w / childSize.w, parentSize.h / childSize.h);\r\n}\r\n\r\nexport function setZoom(transform, zoom, useFitZoom = false) {\r\n transform.zoom = bound(useFitZoom ? transform.fitZoom : zoom, transform.minZoom, transform.maxZoom);\r\n setCenter(transform, transform.centerX, transform.centerY);\r\n}\r\n\r\nexport function setZoomBounds(transform, minZoom, maxZoom) {\r\n transform.minZoom = minZoom;\r\n transform.maxZoom = maxZoom;\r\n}\r\n\r\nexport function setFitZoom(transform, zoom, useFitZoom){\r\n transform.fitZoom = zoom;\r\n transform.maxZoom = Math.ceil(zoom * 2 + 2);\r\n if (useFitZoom && !transform.defaultZoom) setZoom(transform, transform.fitZoom);\r\n else if (transform.defaultZoom) {\r\n if (transform.defaultZoom <= transform.maxZoom && transform.defaultZoom >= transform.minZoom) {\r\n setZoom(transform, transform.defaultZoom);\r\n }\r\n else {\r\n if (transform.defaultZoom > transform.maxZoom)\r\n setZoom(transform, transform.maxZoom);\r\n else if (transform.defaultZoom < transform.minZoom)\r\n setZoom(transform, transform.minZoom);\r\n }\r\n } \r\n}\r\n\r\nexport function setCenter(transform, centerX, centerY) {\r\n transform.centerX = getBoundedCenter(centerX, transform.canvasSize.w, transform.imgSize.w * transform.zoom);\r\n transform.centerY = getBoundedCenter(centerY, transform.canvasSize.h, transform.imgSize.h * transform.zoom);\r\n}\r\n\r\nfunction getBoundedCenter(center, canvas, img) {\r\n if (canvas >= img) return 0.5;\r\n let min = canvas / (2 * img);\r\n return bound(center, min, 1 - min);\r\n}\r\n\r\nexport function bound(value, min, max) {\r\n return Math.max(min, Math.min(value, max));\r\n}\r\n\r\n// given an image, transformation settings, and a box to fit the image into\r\n// calculate and return the offsets such that the transform.center will stick to the\r\n// center of the image and fit\r\nexport function setOffsets(transform) {\r\n const zoomW = transform.imgSize.w * transform.zoom;\r\n const zoomH = transform.imgSize.h * transform.zoom;\r\n const centerLocX = zoomW * transform.centerX;\r\n const centerLocY = zoomH * transform.centerY;\r\n let offsetX = transform.canvasSize.w / 2 - centerLocX;\r\n let offsetY = transform.canvasSize.h / 2 - centerLocY;\r\n\r\n transform.offsetX = offsetX;\r\n transform.offsetY = offsetY;\r\n}\r\n\r\nexport function setTransformSizes(transform, canvasSize, imgSize) {\r\n setSize(transform.canvasSize, canvasSize);\r\n setSize(transform.imgSize, imgSize);\r\n setSize(transform.flippedSize, {w: canvasSize.h, h: canvasSize.w});\r\n setSize(transform.flippedImgSize, {w: imgSize.h, h: imgSize.w});\r\n}\r\n\r\nexport function getFittedSize(parentSize, childSize, margin = 0) {\r\n let marginLeft = 0, marginTop = 0, marginRight = 0, marginBottom = 0;\r\n if (typeof margin === \"object\" && margin !== null) {\r\n marginLeft = margin.left || 0;\r\n marginTop = margin.top || 0;\r\n marginRight = margin.right || 0;\r\n marginBottom = margin.bottom || 0;\r\n } else {\r\n marginLeft = marginTop = marginRight = marginBottom = margin;\r\n }\r\n\r\n let parentWithMargins = { w: parentSize.w - marginLeft - marginRight, h: parentSize.h - marginTop - marginBottom };\r\n const zoom = getZoom(parentWithMargins, childSize);\r\n return {\r\n zoom,\r\n w: zoom * childSize.w,\r\n h: zoom * childSize.h\r\n };\r\n}\r\n\r\nexport function setFittedSize(parentSize, childSize, fitSize, margin = 0, hasBounds = true) {\r\n const fit = getFittedSize(parentSize, childSize, margin);\r\n if (hasBounds) setSize(fitSize, fit);\r\n return fit;\r\n}\r\n\r\nexport function setCirrusRefereceFit(parentSize, sliceBounds, fitSize) {\r\n let aspectFit = getSquareFit(parentSize);\r\n if (sliceBounds) {\r\n let dx = sliceBounds.maxX - sliceBounds.minX;\r\n let dy = sliceBounds.maxY - sliceBounds.minY;\r\n if (dx && dy) aspectFit.w /= dx;\r\n if (dy && dy) aspectFit.h /= dy;\r\n }\r\n setFittedSize(parentSize, aspectFit, fitSize, 40);\r\n}\r\n\r\nexport function setSpectralisReferenceFit(parentSize, sliceBounds, fitSize) {\r\n let aspectFit = getSquareFit(parentSize);\r\n setFittedSize(parentSize, aspectFit, fitSize, 15);\r\n}\r\n\r\nfunction getSquareFit(size) {\r\n let w = Math.min(size.w, size.h);\r\n return { h: w, w: w };\r\n}\r\n\r\n// modify the size of the large view and rgb view so that they fit within the main view\r\nexport function setRGBSizes(mainViewSize, rgbExpanded, largeViewSize, largeViewFit, rgbSize, isOptos) {\r\n // logDetailed(\"geometry\", \"setRGBSizes\");\r\n let lvFactor = 0.5;\r\n if (rgbExpanded || isOptos)\r\n lvFactor = 0.67;\r\n \r\n let rgbFactor = (1 - lvFactor);\r\n if (!isOptos)\r\n rgbFactor /= 2;\r\n \r\n let lvs = Object.assign({}, mainViewSize);\r\n let rgbs = Object.assign({}, mainViewSize);\r\n\r\n lvs.w *= lvFactor;\r\n\r\n rgbs.w *= rgbFactor;\r\n if (isOptos)\r\n rgbs.h /= 3;\r\n else\r\n rgbs.h /= 2;\r\n\r\n \r\n setSize(largeViewSize, lvs);\r\n setSize(largeViewFit, lvs);\r\n setSize(rgbSize, rgbs);\r\n\r\n // logDetailed(\"geometry\", \"setRGBSizes\", \"lvs\", lvs, \"rgbs\", rgbs);\r\n}\r\n\r\nexport function withinViewBounds(x, y, viewSize = { w: 0, h: 0 }, offset = { x: 0, y: 0 }) {\r\n // returns true if the position is within a box offset from the center of a view\r\n // assumes that the fit view is centered within the view\r\n return x >= offset.x && y >= offset.y \r\n && x <= (viewSize.w - offset.x) && y <= (viewSize.h - offset.y);\r\n}\r\n\r\nexport function outOfBoundsDirection(x, y, viewSize = { w: 0, h: 0 }, offset = { x: 0, y: 0 }) {\r\n if((x < offset.x) || (x > (viewSize.w - offset.x))){\r\n return Directions.Horizontal;\r\n }\r\n else if((y < offset.y) ||(y > (viewSize.h - offset.y))){\r\n return Directions.Vertical;\r\n }else{\r\n return Directions.Unknown;\r\n }\r\n}\r\n\r\nexport function viewOffset(viewSize, fitSize){\r\n // calculate the position of the fitted large view canvas relative to its container\r\n // for this browser, the main view is fitted in the center\r\n const x = (viewSize.w - fitSize.w) / 2;\r\n const y = (viewSize.h - fitSize.h) / 2;\r\n return { x, y };\r\n}\r\n\r\nexport function calculateRealLocation(x, y, offset, transform, useFlipped = false) {\r\n return oldCalculateRealLocation(x, y, offset, transform, useFlipped == true ? transform.flippedSize : transform.canvasSize, useFlipped == true ? transform.flippedImgSize : transform.imgSize);\r\n}\r\n\r\nexport function oldCalculateRealLocation(x, y, offset, transform, canvasSize, imgSize) {\r\n if (!transform || !offset || !x || !y)\r\n return null;\r\n // position of the center of the view, relative to the corner of the view\r\n const viewCenterOffsetX = (0.5 * canvasSize.w) / transform.zoom;\r\n const viewCenterOffsetY = (0.5 * canvasSize.h) / transform.zoom;\r\n // position of the center of the view, relative to the corner of the image\r\n const centerX = transform.centerX * imgSize.w;\r\n const centerY = transform.centerY * imgSize.h;\r\n // position of the corner of the view, relative to the corner of the image\r\n const cornerX = centerX - viewCenterOffsetX;\r\n const cornerY = centerY - viewCenterOffsetY;\r\n // position of the mouse, relative to the corner of the view\r\n const mouseX = (x - offset.x) / transform.zoom;\r\n const mouseY = (y - offset.y) / transform.zoom;\r\n\r\n let realX = cornerX + mouseX;\r\n let realY = cornerY + mouseY;\r\n\r\n return { x: realX, y: realY };\r\n}\r\n\r\nexport function getCollectionBounds(collection){\r\n if (!collection || !collection.length) return defaultCollectionBounds();\r\n let minX = collection[0].startPoint.x;\r\n let maxX = minX;\r\n let minY = collection[0].startPoint.y;\r\n let maxY = minY;\r\n\r\n for (let i = 0; i < collection.length; i++){\r\n let {startPoint, endPoint} = collection[i];\r\n minX = Math.min(minX, startPoint.x, endPoint.x);\r\n maxX = Math.max(maxX, startPoint.x, endPoint.x);\r\n minY = Math.min(minY, startPoint.y, endPoint.y);\r\n maxY = Math.max(maxY, startPoint.y, endPoint.y);\r\n }\r\n\r\n return { minX, maxX, minY, maxY };\r\n}\r\n\r\nexport function defaultCollectionBounds(){\r\n return {\r\n minX: 0, maxX: 1,\r\n minY: 0, maxY: 1\r\n };\r\n}\r\n\r\nexport function getViewSize(id){\r\n var el = document.getElementById(id);\r\n return elementSize(el);\r\n}\r\n\r\nexport function getViewSizeByClassName(className) {\r\n var el = document.getElementsByClassName(className)[0];\r\n return elementSize(el);\r\n}\r\n\r\nfunction elementSize(el){\r\n return {\r\n w: el && el.clientWidth || 0,\r\n h: el && el.clientHeight || 0\r\n };\r\n}\r\n\r\nexport function minCenterY(canvasSize, imgSize, transform){\r\n return canvasSize.h / (2 * imgSize.h * transform.zoom);\r\n}\r\n\r\nexport function scrollCenterYConversion(canvasSize, imgSize, transform){\r\n return (1 - canvasSize.h / (imgSize.h * transform.zoom));\r\n}\r\n\r\nexport function scrollFromCenterY(centerY, canvasSize, imgSize, transform){\r\n let minCenter = minCenterY(canvasSize, imgSize, transform);\r\n let conversion = scrollCenterYConversion(canvasSize, imgSize, transform);\r\n return (centerY - minCenter) / conversion;\r\n}\r\n\r\nexport function centerYFromScroll(scroll, canvasSize, imgSize, transform){\r\n let minCenter = minCenterY(canvasSize, imgSize, transform);\r\n let conversion = scrollCenterYConversion(canvasSize, imgSize, transform);\r\n return minCenter + scroll * conversion;\r\n}","\r\nclass Annotation {\r\n constructor(){\r\n this.readyCallback = null;\r\n this.lineWidth = null;\r\n this.textSize = null;\r\n }\r\n\r\n get options(){\r\n return {\r\n textSize: this.textSize,\r\n lineWidth: this.lineWidth,\r\n color: this.color,\r\n scale: this.scale,\r\n transform: this.transform\r\n };\r\n }\r\n\r\n draw(){}\r\n\r\n setReadyCallback(readyCallback) {\r\n this.readyCallback = readyCallback;\r\n }\r\n\r\n setLineWidth(width) {\r\n this.lineWidth = width;\r\n this.signalReady();\r\n }\r\n \r\n setTextSize(size) {\r\n this.textSize = size;\r\n this.signalReady();\r\n }\r\n\r\n signalReady() {\r\n if (this.readyCallback && this.readyCallback instanceof Function)\r\n this.readyCallback();\r\n } \r\n}\r\n\r\nexport default Annotation;","module.exports = __webpack_public_path__ + \"img/Physician - Blue - Selected.28b6c272.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Gray - Selected.eb034c2f.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAABuklEQVRYhe1YMW7CQBAcn3iAJZQv0KJEaeiRaOMfUFmkTkvJH4Ko+IHTItHTBfEQS36BL9owvoTLGc4mtimY1rqd8ezu3d4FWmv4IkiyFwATACMAw5JlBwA7ABsdhR/esS8JCZIsBDAFMAfQ91Z9RApgAWCtozCrLYQOrChAVRRRIKeg+JxDpcGDJHsHkAB4uEJEwSExEsZ089mOMBVbAI8+AnQUFut8RIk7ewBjO1UuIhHxdKULZVCMvbW/n5DROnEiaECEoREOO01GCAtz1pATNoRjRs4fIawL6Y62sSK3+ftpjT3iP9AntxEybyklNhS50WOevt0oWtEHZe1aI0ZfNCieHV1j0uMB5lJ61R9XjDFSZ07RNjHsokCduAuxcRdio8cZ86RzqmxKZagY46A46HaNnTiy4fHvO2WdheekZmOjONCmHTqSioaiWBecJ9tGTm7TNeuOXEnJfRTCiTruQEhcTPNmH2GtLFtKkXAsf1+4TjY0HYWvvHf4X4irQ2LvyWXg2lnHAD4bciZn7LH94Y8QyZmOwueGpvqVxHZdyG//Ei7gwgGAt5rtLWtk7eDSW8ltPNQA+AIfFafuZwep7gAAAABJRU5ErkJggg==\"","import mod 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/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/vuetify-loader/lib/loader.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=style&index=0&lang=scss&\"; export default mod; 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/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/vuetify-loader/lib/loader.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=style&index=0&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAACHCAYAAAC/I3MxAAAACXBIWXMAAC4jAAAuIwF4pT92AAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjA3OjQyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDoxMDoyMS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDoxMDoyMS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozYzQ0YTM2Mi1lYmFk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\"","module.exports = __webpack_public_path__ + \"img/Close - Green.0e950bbd.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDc5OEY1NENBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDc5OEY1NERBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzk4RjU0QUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzk4RjU0QkFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PspY5SoAAAF1SURBVHjaYvz//z8DPQALiDh27JggkJoIxD5ALAiV+wTE34gwgxFKc0LxHyCeBcRVVlZWcP2MIB8BLVoIZMchab4DxDpAhT/x2QDUJwGkBKDc+0DMBcQPgJgPiE8CsSfQjPcgSSaoIgc0M14QsgQKJgHxdShWgxr6ESpnDsR7gI4RQLZIEM2Av0QGPRMWMeRINwLirUDLOGEKefEoJiZ+8Om1AuIZTDgMoHZSjMNl0T9qJ29cFjHTJB9hAZxE6t8ETdYg8AafmbB8hB4noEw3E4jfQtnEpkIlIE7ClkhY8Pg0mx5xxEDrOAIFUSc0vH9D+f+JyEvY8pM2EGfhsugOsBippoYPgPHOhGwRE5ZEQBUAdPA/fHH0j1ZxxETjooeB5kFH7+T9j14W/cFlEROtg+4NjSxiQmd8pHb1AMywjEgFwgcYYw0QlwOxDFCBCZB+jqXEJqYoQi5xDJD4PTCL6qDthmQgPk3FoPsAKjuBpUQHQIABAMPgY4It6w1/AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Add Patient - Blue - Selected.c60c9c04.png\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Gray - Selected.1bf55ce2.png\";","module.exports = __webpack_public_path__ + \"img/Advanced Search - Pink.2741d046.png\";","module.exports = __webpack_public_path__ + \"img/Images-background.1c067912.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAlCAYAAAAwYKuzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjM5OjMyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowNDoxMi0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowNDoxMi0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2YjI2MzJlNS1kODdkLWQyNDMtOTNjYi1kYWE0ZDE3NjliZmYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NmIyNjMyZTUtZDg3ZC1kMjQzLTkzY2ItZGFhNGQxNzY5YmZmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NmIyNjMyZTUtZDg3ZC1kMjQzLTkzY2ItZGFhNGQxNzY5YmZmIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2YjI2MzJlNS1kODdkLWQyNDMtOTNjYi1kYWE0ZDE3NjliZmYiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6Mzk6MzItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44PTn3AAAC+0lEQVRYhdWXMW7bMBiFvxg5gHwDIwcoBLgHMIp095LOntzVWzp6dLes6eTZWbw7gw7QArpAC4+dYt3gdeCvhmZIVZbcoH3AD1niz8cnPvKnfCGJBuRA5t3vLbogMz4fFVA2dbpMEC2AGVAEgnKLJbBuKWxifCPjqwK+EbAF7oI2B0l+5JL2khbBcz8ySXeSCvvdlFdIWksaNeQhaSaptOtRWyiuaEEWksZE1i86bclVv9DWXuiFwMwI24rzRRaRgfYm8hSuOtaSlqHAdWx6W8ZW0sS7L06cuViUNaf/oCtZbiIx0nUPrjpGtTOXtsuKljsyhpLn8rGw6Iu9RT7ACSx7EpbAG1zJ2PfkqrEFZgO76UtaAu/o50SIApvBCvfmfZADP4kV2u6oAAYcr6GuGOEEnh0D3FROe3BM6L+Gk6jX4Jruu29p/Sv6O+EjB6r6Y+EON5MFp83GArfBCrsf9VXlYQJsw4J7yhE108uzeNnjRIqdJlnsVChtoCzRcWQnxzaSk0VEd4mFaeBCin6wzsy+yrMvs2nf87wkUn2ndN94OW5NT4AqJbBGxvHCT4kKsbbrrLUshxx3gkyp98KZ1ksslmb36ARby3AP/E2ByH3dFHJfONPI2sw9YdF1/yeLz4UcZ3cePK/M0i2JY/K1BHbGoKHtCtgAT4AsdoncYZC7s/5NmFvuTVNS7G8nwNgG+QZ8BA6ekBSGwAe7roB74H1D/m0LzqTAjYlrGsDHIcgdewJS4g4N7b8Rs/gaZ8/nluJiGAI/GtpugU9tiGIzOLbrYwdRY4s5zu4YVjh3WvGnLG7CmON18+g933nPYgKucOLfth4tUlxv5DBOFN+djhG2X0n6bnlh20bSV0nXFpK0sj7RYh97OJT0ZGRdT5BVQnwK9ymumMUHXGnZmGVfOC4zD5E+c8s5WM7cy6vLzgNwERpoY305xeI6rgM7n2xmYrm3Zmudd29O+EsmZqOsPanjNY66Fa50td8YHpqOunPhmh419b/+WPgn8AvRFV+xdXhH+QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAACXBIWXMAAAsSAAALEgHS3X78AAADNUlEQVRYhc1XO24iQRB9bTkfvCdA7AVGYg9AAHFPwsZEkJLh0KHJSNeRY28yE5uAAxiJCyziBMvMCXpV9mtv05pPj7Etl9QCdXdVvfp0VY0yxuCtpLKiC6Drse+MjvI3CyW1BqayogNgDiABcBAg3pWEvyujo/tPAaayYgLgRladUnpS7sUAJkZHPvj3A6ayQoB0qCgoVCorBFgqXmwNToA1LaT5DdL8nvduzQv1A3k7SPMd0jwOuW/XRYDVAwADoyMJo9CeR1dBhr94V3hT5mcQNQIDcE/Blu4CeOwDseB2lDOvZ/tPtcDorY3R0SFUIEGJIStvf+W82POAUVDaAlRMHh+UDemOD+JsYLHRURmwI5cPqsuQVdEm1GuXDedVyfqtAlSTdw8lnaKUmjwWUq8SGtAm5GcDa3reti1JiHoAniSdANx+NLC8pvZMvF4pOTdjmBcA+iU83cAoNAITpYOS/TlD57YZAbZ1Cu++hC+hd5upoZ3ESPONtz83xnRq+B7ZtnxZXaT54V1akm28LLSWVjXh+EVPXZec3XCFUUAT7rIJ13lJ1tScUs+RkZR4vnYFjT2cwySvBm2nU2f0idvwhjRxcCiUEG5CWwpBzdkJktYGtZxgYyracXQuHf5UViT08I7TbutvgDd9jFDxxKlLGxbjmL8bAm8zlZwPzANpAUnIw2rUZwD7KLpUWTEE8OjIlzq0NDp6nlRVVhjvbMb/j0ZH6tXCl3sjo6O1yoqF0y9/Gh399uQIjSjvj73jyPl+weYLKpE+t5RCqbJi6gixPXDLItqrcFRPZUWfoH6Qx53bZqKHa+20L7/pX52UC6OjIz21ZCM+OQOwrgHl05Hy1iF3PUdU1rGtD0BlhVg3JLhKMjra8s4TQxpCS99rQQWW4fsLYCz50HTZ6GjEfrlQWfHgypEc8vON+bV3DakC5nvG5tieIX4eaejF11962iq7I9/YlWNzrETntZs+J8BEAVFP6V7XKskxUTZm3hwdQQvm1JYyhtzvlXy0lBJlvs5wF471xgnXyEtay7Dmy+sxpGPyjfn8wcn1gftTZx9uKJnsPmg7Lh2/bIENTf5Pp68JDMA/FdWbq6KXSA0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAaCAYAAABYQRdDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDJCOEUyQjdBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDJCOEUyQjhBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MkI4RTJCNUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0MkI4RTJCNkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Puiwj44AAAFsSURBVHjarFXtTcMwEG2j/Mds4A1aJiBMkDIB3YBsQDcAJmi6QdjAf/LfTEA6Ac4E5YyepcM4jqv4pKdEJ/v5+b687vt+lWgSGIBJKxMJ94Qj/keQm6nFxYyyhqBAaMnOhBvCN0ETOsI2VakgfHm+N0LL/BtA+sRTSnf4vhM+mN/F0iq+g3pLfIFyESOV+HZQ59sAEs18G4QqGlNnJmHNLeETxNtilceMU2lDkIv0z41ykv7L/gEnXVA6YiamJhZvW6cV4YX5nr01NsMPLNOPLH77UPEXzHnC5jFwuGKqOk+pCpFq1kUKoVhkJTupRtG7mIqQimsSdWIJc98mR/atPbEWXVxSQ0DtYtIcamWIlKttF5Aav00PqNP7KxMlsMfu1UVgTjqyV3RMijXsdQgOlJaF4YgOEhHCHdp8dKRl5PU0mAM1m/TKu3KFwexU/rbveubdr3C1OrLmjFy0qe++YuqkBzdktL/pR4ABAGlTXkm/EwMhAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Pink - Selected.e62fb88c.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAAACXBIWXMAAAsSAAALEgHS3X78AAABlklEQVQ4jZVV21HDMBBcZfhHVEA6IFSAqQBUAe4goQKgApIKSAcyFWAqwHSQdHBUIGYz6xkR/Mr9eCzrbm9Xq7NLKeGUcNEWAHwKvp6SNhnARfMAKgA3WtoDKFLwu6G8mYu2c9GeJ2CsAbD7AOCFLADcjyXNlPjkojUu2ryn+0LF2HGVgmdDjUCGAVLwBLjWZoJ0dbUCsE3BN9naaPGWAZS4kMbRRauO2NwRIGPEvVfaPxj/DtlFKyUb9CR4TMG7bA/XLAVfZBJStjUl/FOvy0VyDIs/aGmvAnPJxVjQQS4a9y0BvIvpo2TvBzgC2ko+honRKgVvkuoLwC3vhYvGu1HLBIc4G9JPRViwyZOyoCE++y4d2c2GALLotK8Y5W4io/ziLQcZKJhQ9Hzjgb7KGIzz1lk6+P3oqMh0vqBkHd9rdW7Sv9T6wdajEumOtC7qilKdX5ItO5ez6MB66hnQmstMirZ7vlOSHwAbHfqHbLtJwW9PmaYs9gbgW1ZlMXbO97IdI7R2LuVJ/wONDxZunUP79o8LAL/Ku8Gj9F1zKQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Refresh - Blue.fa839df7.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - White.ec1e00ac.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTNBNEJCN0JBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTNBNEJCN0NBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxM0E0QkI3OUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxM0E0QkI3QUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuqOQQYAAAYjSURBVHja7N1P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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAB2CAYAAAAJHju1AAAFUUlEQVR4nO2dW6hnUxzHP64ZEhqSmAeKELmVyySN+wNpKLk8uISRWwilKA/Mw2jiaNAYZ2RIZhg1cpsHnDyMY4YwYShPxmXIGJcJ5TK08zPN0jhnr/9/771+a+3vp87DqdNe373296y111q/328jhBBCCCGEEEIIIUQKtpmwzWU/6KG0z0HAOy22spGZu+9b94+37+CGxcTsAOzaYh9FXXvb9nSImvzZckdtjPljGUIEyBAiQIYQATKECJAhRIAMIQJkCBEgQ4gAGUIEyBAiQIYQATKECJAhRIAMIQJkCBEgQ4gAGUIEyBAiQIYQATKECCjdEHcDxzrQkQ2lGmIn4CngzklzT0RAiXkZxwPPAvvZ7xsS68mK0kaIW4HxLcxQsV1CPdlR0gjxEHCtAx1ZU4IhpgGLgekOtGRP7lPGecAHMkNz5GyIEeA5YDcHWoohxyljqi0pz3SgpThyGyFOtilCZmiJnAxxA/A6sI8DLcWSw5RR7TQuBC53oKV4vBviCOBp4BAHWnqB5yljFvC+zNAtXg0xD3jEgY7e4W3K2NMOpmY40NJLPI0QZwNrZIa0eDHEvcALwF4OtPSa1FNGFciyBDinxw/hLwcaNpNyhDjBpog+m6HiVwcaNpPKENWS8k1g/0Tte2KaJzEpDKElZcglnsR0+Q5xGPAkcGSHbXqnOrq/zJPGrgxxsR1Zi5AXgR099UkXU8ZsmWGrLABO9CaqzRFiD4t1PKPFNurwSeL2/8spwF3ASb5k/UNbhjgVWATU/nBHizwIrHegY2/bhT3YgZb/pQ1D3APc0cJ1B+U6R1pSEJWX0qQhpti7wrnJu0BsyR8xvdGUIaol5fPAAXoU7vgqRlATq4xq13G1zOCWL2KEDWuIubbrqDoTflkTo2zQKaMaDZYCR2XcUX1hWcx9DvKfXaXPfSgzZMGPwIoYobGGmG3pc1PK6rdiqcIRf4u5ubpTxs62pJzZ9x7OjIdj5dYZIWbY9q/MkBdvA+/FKp7MEHOAMW9BHKIWswbppskMEbWGFW4YtSSnxg0xz75ev1rPOht+Bm4cVGydd4hPLcrpmfL6rkguAn4Z9MZilp0X2LJT+OUBy28ZmNh9iKoQ6OnA9zKFO6ol5k3Dihpkp/JV4FDgLf991BuWNBX3Meih1NeWaPNE//reHVV9zgubEjXsKeWlNo2INNwOXN9ky00cW1cvmucD3zVwLVGPcYvYntN0fzUVx7DUgkfHG7qe2Drf2Kg8PfYUsy5NBrasN6GP6WE2zkc2NRzY9ntbG1HXV1gtyftbuHZf2AR8DLwCvGznSZ3QVl7GiJ2QLnZQenh8mJ27jlhrP1VAy2fASuDLFELazNxaDhxu7xcpP3N0ljbS6tN2cOznwHHAoy23MxFTE7adHV1FS1dn8zcn6pwSPyPVGl2Gz49Youu6ju/x947by5qu8ynG7L0iOrRrCPQ9jQhSJNhUO5pHA4931J5KHUaQMuOqqm5/dQftRCW79p3UKXgLbBWiZaETPORkrrIQvVUOtPQeL0m6a22kWORAS6/xlrVdlei7xoGO3uIxjX++fb9b8RUJ8FrXYaV9SecNB1p6hedCH99aXul8B1p6Qw6VX6p3iqsc6OgFuZQCGrVzkKgCWiKenGpDjdl7xUsOtBRLbsXCfrJvc93nQEuR5Fo97ha9V7RDzuUERy03YYMDLcWQe33JFVZFV/sVDVFCwdF1tl8x14GW7CmpAu1twJUOdGRNaSWJFwLHWLT3v2xKKykvSqxR/a7Fbb5mv++SWE9WlFq0vMqAOs2q7soQQgghhBBCCCGEEEK4Bvgbwqmg0DTSGPAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAACg0lEQVRIib1VTWgTQRR+b3ayyaYkbapikIqSigitIEUQehJ6qSB48STYgwqCtHhT8OK1BVH0pOJBT3oQFNFDQQQVkeIvVpCCEkFrhabm1/ztzDyZTbNm06UNsvWDXYY3M++b9773ZpCI4H+Aa45MVSQm3pcuP8mog0VbJhQAxJgsWEhlAPQcA9F7MKLGgooiq0rMQsbF0a3m9cndXediIaPs7tMRHZnJ37r9g8aaxlQUPn8ciQ1a3KitFux8qZ7M1WSPsydupiuKotuni1+LEuND3TAzPdx1YGMklNXzTP+e/qL9rQ6SEfy5FonGxGz1yuCz2if9zeXrO3vDPNttsryee5uHfSPPS4+XaqLHJRJSJVodGKBkJ7IpRczH7Ob2QwmHRl8UH5VsZTkLq1LGWlcidFYh1C6gz97XeRw+8aZw1SGyVftiCLQU7y/UxxjASq8IoPy3/Dt8iZSWKWDwZcceVJRhdUJzaIv5YEeM0vqgmyJGRtuEIu4jXaOPzHuLZEPINTIgcXKbca03BEscQTCEjqow/Vulbs7DMWhjCkPdnyhoaCK/PlgXcE8egeSZfj612YQMY2gjA7lWqTd6CVeIMpsTAze+0SnXd2vqUpac+zK6YVcQESm7zoyHZUfbFanjQCKotLGQ6SlmD5GBwTeqh6iZ4KCvnlZ3HiLdM8ES/YWHKGggkCvFehO5GXKIwssloWj9GthxHOHcuRAVBEtEgK4/Z2Aa6LzzgoJ7HkjYSIDOzRM1WM4ZHE7i3YtpOjtfN/peLpb39ll8AQwum+XZ0HC15x1bnnWtjOCvsrU9TdN4yrzgXEFVqczxd4VLd77bxwVROKiodCSn+82p8wPxyT+FBANW5oLsAwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Delete_Blue.4b24993e.png\";","module.exports = __webpack_public_path__ + \"img/ZoomWhite&Black.1f2511b3.png\";","module.exports = __webpack_public_path__ + \"img/Download - White - Selected.3f03f9dd.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADLUlEQVQ4jTWTTYjkRBTHXyWVdL46nXRG+yPuYdYdxWl0T3PRRRAPinhZBcGTNwVPuwfx0HjY+4J4EPHjoDePgrDg4k1mPHgSlJ2BaWfGoTHTm20y6UrS6apUyQu7BYEUVP3f//3+r8hsNoO6rkEpBbquw3g8Bs45ZFkGVVUBpTQAgOeFEO8KIaDf798nhPzqui5YlgUUHi8UkFICIaT9AOAp13VVnue3Li4upkVRtAfPz88/GQ6H3+zu7n5EKQXtiYBhGKBpmrNcLlsxSimTUt4wTZMGQfAgiqJmtVpBkiRwfHz84dnZ2ZdtsaOjo7ayiScp3WRZ9rFlWWpra+urPM8jbMH3/QQAthljr+zv73+WpmkcxzHs7e3d1LCvxWKB1Tdpmt7pdDov13X9JmPsLd/3Hw0Gg5lSqijL8q/BYPD1ZDK53TQNrNdrKMvyDYogmqZ57eTk5FPbtreVUndHo9G3uq6/0O12aZIkIk1TsG0bNpsNtjoLw1AppYiUMkKInTiOHyZJ0uOcPxfHsY0MVqvVA3SGCWERFMCU1uv1i6ZpQqfTQdgl3Ww20WKxuGcYxhXDMIo8z5+tqkqrqkoh5SAIsFoLGS8yxt7B6kEQMNd1f6KEkId1XR8IIV5yXfcZSumPQghpWRZxHKcFjC7yPMfqrxdFcb3b7Yper/eP7/v3NMbY28vl8mZRFFcdx/mOUvo7WsYkGGMKIUdRhJCvNE1zAwC8Xq9HwzCcSikplVJe55xnnHMBAP/hTKBVJO37fjuZZVkOGWO+EOLVIAi0fr9/27KsP6SUJXUcZ845f/ry8hLtTobDISB17B8FsAXGmNc0zfue5/0NAH96nvcFIUThqOvT6fTRfD6/hZuiKLbRlmVZc13XRVVV11arVScMw1OllCul1Eaj0R3OuYGc2tHHGT89Pf3g4ODge7SP8YzH48q27dzzvN8cx7kfBMEvruv+i6NsGIZjWVaJbHBR/NnZ2fmBEBIeHh5+jlkrpWzTNA3TNJnjOEcAYGuaBmEYYhIl8nn84IDgs8VLmHOWZZOyLN8DAG7b9s+GYZwDQGPb9iUK4LknT78VAID/Ab2ls7PerfuUAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Delete - Dark Gray - Selected.114ac1b5.png\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Gray - Selected.151e04a5.png\";","module.exports = __webpack_public_path__ + \"img/Calendar - Blue - Selected.b154c920.png\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Gray.d8ccc332.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsSAAALEgHS3X78AAADWklEQVRogd1aPU8bQRB9sVAsoQRTOFI+ClMkElRxKjcX4TY0Mb8Ap3Yi+Ac4/8AoujrwC2Ia0hrFzVUxFUhJwRX5kOIidhCSIySiOc3CeX323e6dw56fdHiFdr3zPLM3b2f31uXlJWYBc0lxsB1rEUAZQJE/we0ct3sAOtxuATilz1qpfZrE/LE8wsZXAGwBeKr5NUcAdgE045DSIsIEtvjJRRgSFXsA6jqElInYjlWfAgEZO0zod9QBkYnYjlXkENANIVW4AKq1UruVGBHbsaoAGqpeWL63hpX8mtc+7h7g5NeBDqG3tVK7HtYpE9aBSbzXCaWF7H08XCh6D7U1sW071m4sIj4SN42NMDJjiRhEQmAimUAivLBNIiGwwT/wCEaIcI5o3oSVEdGwHWtJ7hvkEXpDFEyxOgA5TgNDGCLCIbVpgLFhWJVDTPZIwxhTwzGUW66IsDdWzbN3LAp+r/hlPOknPFp4FuvbBxdn6J5/mdgnP/8E2bk7ScxRFevFT6Ti/Vl5pz0B4Xu/gw/Hryf2eV7Y9LJ9AnPQWlkiteyFlu1YlSmr2WnCc4DwSFme6KT7UUnkWYVN5OcfK9nbPf+KtrsTuT+J0OX8C/nfRKQhiIz4+c/gB771P0ee5O/FWeS+/jEqc4xZv57t4q2VpreVjBytkwxLkrRjKRMUVmlE6MYqJSjPCpGZ8cjMEGllopZbTIfwSC/lPDois3fkpHg3+0BJCd/WULM0RmUOsikALlUkBZGWTIQ0TYCuSRSkzeKqbVHhF6FlcrEhDJ7tnkdqpXbHdiyqtRaax29ifesggnj85O7E3lj5cE2EQTutbRU1qouwHaQC9kXF3p9HQuurBuKqWHJFhA9X9lJE4tCfA+XMXk9RTgkuB+HaK2mobe3LimREa/GhytF/NUsNPS4DDWGcaKwYHGKVoLPFQCIcYiOVFQPwapzIHSvjKUnSQMNIqB30CPDAdQPCbCIJRNlY1UrtJoeZqzp7f/DTK2/SQ20N0A+4HkYCiufsi5z9X+pYpIFDPmePdAtC5+ZDmQlN61TL5VsPSpJJ+1INn03EuUwjgwhQMt5VubohEPu+Fh8QVTn3qHrJ5U1dk9eiNhK9eManrUSMHlpTchWT4p0eerV3krqrBQD/AAtPNb78Oz7+AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAABuklEQVRYhe1YMW7CQBAcn3iAJZQv0KJEaeiRaOMfUFmkTkvJH4Ko+IHTItHTBfEQS36BL9owvoTLGc4mtimY1rqd8ezu3d4FWmv4IkiyFwATACMAw5JlBwA7ABsdhR/esS8JCZIsBDAFMAfQ91Z9RApgAWCtozCrLYQOrChAVRRRIKeg+JxDpcGDJHsHkAB4uEJEwSExEsZ089mOMBVbAI8+AnQUFut8RIk7ewBjO1UuIhHxdKULZVCMvbW/n5DROnEiaECEoREOO01GCAtz1pATNoRjRs4fIawL6Y62sSK3+ftpjT3iP9AntxEybyklNhS50WOevt0oWtEHZe1aI0ZfNCieHV1j0uMB5lJ61R9XjDFSZ07RNjHsokCduAuxcRdio8cZ86RzqmxKZagY46A46HaNnTiy4fHvO2WdheekZmOjONCmHTqSioaiWBecJ9tGTm7TNeuOXEnJfRTCiTruQEhcTPNmH2GtLFtKkXAsf1+4TjY0HYWvvHf4X4irQ2LvyWXg2lnHAD4bciZn7LH94Y8QyZmOwueGpvqVxHZdyG//Ei7gwgGAt5rtLWtk7eDSW8ltPNQA+AIfFafuZwep7gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAAC5ElEQVRYhc1YPW8TQRB9d8EOBCKfZCigCEigSDQYAgUpkKLIUkrsX4CryFREok2RIj8gHciV+QXnIo0lCksUaQixaWgoIAUUYOksIQN24kOzzJ0v57313jmO8iTrdB8z7+3M7O6sDdd1oQvDdgoA1gAsA8hFmLUA7AGou0Wrpu17nBDDdiwAJQCbALLaqv+jDWAbQNUtWk5iIRyBCgswY4rwMGBB66oIRTo3bOcVABvAtQlEeBzkw2afcr5wRDgVbwE8mFCADBSdAwD5cKpkRCRiaQoiPL4l5hh54YNDR5EwpiDCpyGOcJp8IVyYZd1I3M/MTCKGOMrMORTCdUGzQwsbd2ZxsDovrhOiwtz+6Etx1ggrZfjX0kIazdV5/1lMZJnbF7KpkxIZWelmGrnMTNJUmcwNk/OkFY3GkyvYuntRKTQslu537l1Suc2SBpP3jrFYuXpBjJyuUSDC6sO5E28pYi9uz46rpzWTN7BTwbOFNJ5eTwlXBb4G60mBZVO2i1K+vZGRg1tz8dY2+t5+fHkkJQpfOelTqgMaHYWT6oJmRVwhkKw1NDjyJRMjFRIMJ9VFJtnUHAHVVyYiKtPYTyKhGtCZCml1jiPfSedi9WtP5Lf2rY/Gj6PYxRqF0n5XTOfGzyOpkFZ45lQPe6h978PpD3sV1foRBhG9Oexh5/NfFG6k/LfNzjE2Pv6WmbRMbnRHEBShi07fFT/w6JuKVISwR0LqOl9+6Q4EiUrgyrtf4hcEpZfsKN0K1E1uaNs6QkSO97uR31AEwlGge2u3I+wj0CYNXhVucz+pRLhuwPVAI1YQqTBgbn/6VnWiIsPWpz8iSgmFtJl72MVzO2DrWHtbO82AJEUdQNE765w4TnBDu34GCx2Fr+IWrec+t+Rc855b/ml18kT4wS1aj4IPZSPP04c6xZsAA/adD5tGnn05TeVTFvI6mA4tITgvh3ACGy4CeJlwepMN2S6O+6/kfPxRA+AfmywnvRXqOcUAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Add Patient - Blue.c4fcffb7.png\";","import mod 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/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenModal.vue?vue&type=style&index=0&id=b92116de&lang=scss&scoped=true&\"; export default mod; 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/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenModal.vue?vue&type=style&index=0&id=b92116de&lang=scss&scoped=true&\"","import { POINTER_CLASSES, ANNOTATION_COLORS } from \"../../config/config\";\r\nimport Annotation from \"./annotation\";\r\nimport { defaultTransform } from \"../geometry\";\r\n\r\nexport default class InteractiveAnnotation extends Annotation {\r\n constructor(position, options) {\r\n super();\r\n\r\n this.interactionX = 0;\r\n this.interactionY = 0;\r\n\r\n this.originalPosition = { x: position && position.x, y: position && position.y };\r\n this.textSize = options && options.textSize || 40;\r\n this.lineWidth = options && options.lineWidth || 5;\r\n this.color = options && options.color || ANNOTATION_COLORS.White;\r\n this.scale = options && options.scale || 1;\r\n this.transform = options && options.transform || defaultTransform();\r\n\r\n this.isContinuous = false;\r\n this.font = this.options.textSize + \"px Calibri\";\r\n }\r\n\r\n draw() { }\r\n\r\n isInBounds() { return false; }\r\n \r\n mousedown(x, y) {\r\n this.interactionX = x;\r\n this.interactionY = y;\r\n }\r\n\r\n mouseup() { }\r\n\r\n mousemove() { }\r\n\r\n deactivate() { }\r\n\r\n keypress() { }\r\n\r\n // note - return false to assert that this annotation should not be deleted completely\r\n // this is appropriate if an annotation has special delete behavior\r\n delete() { return true; }\r\n\r\n\r\n getHoverClass() {\r\n return POINTER_CLASSES.pointer;\r\n }\r\n\r\n getActiveClass(x, y) {\r\n return this.getHoverClass(x, y);\r\n }\r\n\r\n getAndUpdateInteraction(x, y) {\r\n const dx = x - this.interactionX;\r\n const dy = y - this.interactionY;\r\n this.interactionX = x;\r\n this.interactionY = y;\r\n return { dx, dy };\r\n }\r\n\r\n setParentTransform(transform) {\r\n this.transform = transform;\r\n }\r\n\r\n updateTextSize(size) {\r\n this.setTextSize(size);\r\n this.font = this.options.textSize + \"px Calibri\";\r\n }\r\n\r\n updateColor(color) \r\n {\r\n this.color = color;\r\n }\r\n}","module.exports = __webpack_public_path__ + \"img/Devices-background.29db4c18.svg\";","module.exports = __webpack_public_path__ + \"img/Advanced Search - Green.721391fe.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjMwOjU2LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1MzowMi0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1MzowMi0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjY2I2MDI3Ni01ZmE3LTcwNDAtOTY0Zi0xZTg5M2JkMDQwNWUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Y2NiNjAyNzYtNWZhNy03MDQwLTk2NGYtMWU4OTNiZDA0MDVlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6Y2NiNjAyNzYtNWZhNy03MDQwLTk2NGYtMWU4OTNiZDA0MDVlIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjY2I2MDI3Ni01ZmE3LTcwNDAtOTY0Zi0xZTg5M2JkMDQwNWUiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6MzA6NTYtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrIOAAAA0ElEQVRIia3VYQ3CMBCG4W8YYBImYVImAQlIQAIOqARwMAlImAPq4OUHXTJKN7r2LmnSXZp7crcmbYCLpEnSXZKXcRxC0ZukV0AGUwFoAc93eMABA6CaNW8c6+GBrhboNoCTRQcCxkTx0WpE4jPvVDgrQMBkjcSJcyjW83uzipA40S72a0ibWzwFxCuFPPcgOYeqkNxWi5E9P6wI2Xsr1pDOClhDfMibALuQUiAbqQGykFrgL2IBbCINYPX69pJGScdF7mHVQaoTZzmiGLnO32/yDV0asMYUVgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Pink.c33ff816.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAqCAYAAADI3bkcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTZGMjJCNjZBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTZGMjJCNjdBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NkYyMkI2NEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NkYyMkI2NUFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvViMUEAAATJSURBVHjaxFlfaBxFGJ/ZvcQmItlGffWuKSIK0gOxLVaaBVMQH0wsKPigPalv0jZKaUELuQgF9aVX/IP6oNsXXyo2RQSloV5AUR+kF0FRMG3y4otiNqZpteZ2/E3yTfJ1vM3d3p/NwI/Znf127jfffv9mTr717R7RSAurd/T3Oov7XVkddET1LinUXvZ4Tgk5h76CvuKI6Jx+pZF5X9j1lUjSMvUErqtbB7bIa2Oe+8ezG4hlsYAs+r3o9f0HwDRQAiYaJd8OwsUeuTRWY3yaSMwCHiGniTOZHcCHRNog7BRhTSAAhvln1wuoozH9ng+MEPoIetGj9H6pFcJOzHiZkV0AXiQNBnW0FNKCCiT/HC1UEPFT2s6BfDsJB/Q5zaf3m9RKSHMZ4gvMVC6RxlsmrD/jAWYCPmmk1RbAebdFwnmTjWltB29/97DXLGFjtytmUBWZJ9rp3XDeeYS7w/+onieZtrVyyklIc8KjZGcITHLcFcuXRAfaLfL6x4uR9wB+4wdmIg2Tdph2jU3NIZaeEh1stznhzOUb9/nLqutr3EZJSDvMdvtM7BUptO3dP86fWzz42F/R1s9w+y+RDhol7LMQFqRBGCn584tDT//8+N0vX7wa9X1Kmh6GlotJCJdFSg3EHnWke+Te2x/cObm0/xBseoYejeGZX4+wSamVtAhDw1vRvebIzIkLQwd/W6j2H+BhMM6eHXI4kbaG0f4EBpSITuqbVx46/w20fJopcDSulvASamYI3QVgEhjCD74uVz/UcWAeeAramVyVUytykYq03BsrEyh1jOT2kdza3H+r3nHE6xEirE0jwPNZW8OzVvKo1waoP6t/FGSP01g/jb23LifRybOw1X2uzBxzZdc21+nud5wM5NS79sRHd38xX1WZl3i1GGfDJvPkEzjN+1pD5N2TuNZa+54tyJYTRg6LhJzcXmvew7vLn6CbMpkQ8rlahMssHjdT5Cyze0V9xK5xAaNQy7KRCSPhjlsZ+H+EJ1iazCUk/Dtw9abfWyfOFwLzVQ0RPrRr6ktWlhbiCBuz2LCUjFT1ijXUDfxC17+KVcMV5BtrtYpcHZ6JmaNWMzz6YBZrX16yTWiRdgaC6te0Ml6cj3gUTXQ7A7mCXa0VqWAXtBcriE1sIBgy5/PjCnjfIh00YdPtbMa3stB4vhbh0CKt0+UVIv8McH/KhHnmzcft6UJ6OM4cUZvHGdqL3dDHFcA1YIlgrn8CPgKe12VvG8yi0ghhbtM52jFPk/e7QJfeOABbCD3U9wL3AHoL9A5FjBNt0PIUJ1zvICVkhyAevZS3UniOIcuUcCfwKvAI0Mr+UGt50PhSJsGLIdnURhWdR9myyEpWn5x3pEnCIS+BnTY7CT+L4Ol1uNlzCLtGdzro4UVKQLZPNKthnUxyTofDktb2aXZUVWpxvo4TNtXWHDMNv4UwV06DsF0iJq1R/LRs2E6xU8zbk5x95NhZX2qEbS2PJdjd+DxapEm4YoW6iXp7SKqDs7wQSpOwXcJmNzpPo/ES23NuCmG7hDWHgLkaZMtMuyWqj2/acaTZPNLYoHWmF9Kzglg/nJwG2Tw/SNmMZupu80eNJnekhtx5e+ezWYT5RtMURj4LYdpBJ3SisF/4T4ABAHXvjFnQGpCeAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/montage-icon-green.ea6c672c.svg\";","module.exports = __webpack_public_path__ + \"img/Physicians-background-blue.c0c7c8c8.svg\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - Green.309f48f5.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAnCAYAAAAW7IaoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkNCRDc0OTlBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkNCRDc0OUFBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3RTA0N0VFQUFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQ0JENzQ5OEFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlFrEvEAAAT+SURBVHja5FvRcaMwEF178m9fBaEDkwpMKghXgUkFIRWYVBC7gpAKYlcQ/JHvIxWEdGB3cFbu6azh0EqAwGRuZzTxxFhoebv7dhdp9Pb2Rg5kehy+8rcsBUZ+HHv6fuJhSB3LkkGv3MXNLlqAEB5HgHFZ47efx7GBIpsBgxBizC2uXyqfd9BrA0OsLaOaniIAiI5j4Uh5AVB6HKuBeJDQLT6OmaP53qFbWudH4xqWIyz71SEgBA9bwqISTWjoQ0Ks4ckhIIS5njB36BIU8bA+LN24qUwATg5v7EumMLaXmiG4ifG94F5eG06RC57VdNe9xtMuLRcvvHGNMNKlBIj7E8vrDwyR2xrsHHNEHJ/qQPERB02ASE7IMExWKROD0ADSHdYQdsQ1EcKKSbZKUmIibU/R7cYQFYTX3Oq4poroPaDJWdAOYS1r+WASAzifUDJ3CEhq4MWDQs5Fw3tM4emx4TlWAjOumIxzaRGermERmYOH42FhByacZXVI0vCgcgMgW3ho0gIQgncn0G/NXPcE42RB4ULWsyMwqsDxATjn7kmLe/gAZMZ4x62ShbmSPbzlmjG8p3LBPS6lhTeMm0Ud1hIFFvZsKNDSBmlzCEO6ZEJkULeWqCkZ7nFgDPMfUKbMou47XnCZZ26Z7xdQ0BaYBF42YbjRd8xZOskZYGZqGJOg6AjpGaTXp6QGd59ZrEka2ZK5RobjPjsJOcOPSRmUSBNnYzqPSHd/Z9JPU321MGQ90Rl1W2uSmkCC4mvibXzmfpR0962GQHWEXhgI/brHcMyF1YOG/75A0bnTEDq4e6xvXSLmRMNHvwzpvN9B9thUr42my/DXU6ry9SG99xBe++M4rpTiVpWVoULfQuFiQDqlGr78AmWqCR1Dk6qXSLLYvWN+t+6wXdOWW6okuNCQZkHDFw+AzOq2MYYuFxpPGToogaEddMA1OX1DGWsW7g14zYLQXw2E7n1XQMptlu8ASmog9HMUhE3F50DJdPnygMSmIHygf/tzU6TPMZ3vVXNdULILjZvP4C3FQBa/IX1DUXYe0gogCyXMPdKfPt5qIKBEmtCr9RSidq1yV9KmwxtW8M7jQLIxsea5Lk0ew92rWhkL6ncTQ1XB+GJRoedMyCONXvmZw9mK+//YcFF6hsXLDu+jgdB9A6GnxHeac45sOwZkpuk6FCoowm12FRfK17HTHgExEfo92XV498R3mqVuUY+AREz3Ia5KiWPGqvoAxrbDW4eoZad5p/l+ghS7D/5MmHT+QU2qxiUF7hlgig45RhiEqcMbULMOr/QYbgPDskPDk/25JaNbwhWPK9K/J5+gkk4dFpeyFcLxx85Ry0QAz71qnsPwYsfhSsx5Y8gejRV9RPwGBhHvP+i0C6VNqvtKfENx7bhCF2u+YhKACQykoNMWoSaeEdNpbzLXn6vsXnO77lOy28z9iQecYxSlotOj09mOAMNmq2iXHV6PzB1mNbxs6HS2Rj1jUz6XE9aYM9J5v+koRISQNqH+pItdkTqLXpHbUwQ2siXDdq2xhbv7TPbiWtbU35afPR7OTxhC16Ju+GPDsc1RCJl1XXcIzhax/hybNTYwhIeOwDlgbs82HI8anHkMYGFhy7Amj9mtaFgv1aRuNy3nkae4NnUNbdTyIGqgDI/4HfQ7LC5TEoMhizy6IROUqaGwlYmO1K+xx48cnQ7+H8XrysN/CzAAsJ9iTXDpspwAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/registerreturn-icon-green.b3f8051b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDM6NTYtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDM6NTYtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZWFiYTVjYTMtYjgwZi1mOTQzLWJlYzQtMGRiMmE5Yjc4YjczIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YjVmMWJmNTctMDRiMi1iOTRmLWIwNzItYzZlNzM1MWFiY2ZkIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YTIzNTMzM2UtNzA0YS1iMjQ4LTg2NDQtMWVlMGVhZDYyZTRkIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphMjM1MzMzZS03MDRhLWIyNDgtODY0NC0xZWUwZWFkNjJlNGQiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmVhYmE1Y2EzLWI4MGYtZjk0My1iZWM0LTBkYjJhOWI3OGI3MyIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0Mzo1Ni0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5Y8WFVAAAIIUlEQVR42u3d227bOhBAUXt+PPlz9qnAOUXdyIlEzWUtQK+NTIrbEydt4+Pj4+Eae60fXtbQ5brwigedrS+u7H8+jCbQvUPsvkCguTl87h8EGkHz+kCgmRwssQaBFiZrAgLNsQhhnUCgTYbWDgQaU6D1BIEWEutrGRBohMN6g0ALBdYfgUYY7AcIdPMYYG9AoE1p2CcEGgfevoFA+5YZewgCbfpCpBFohxlvuiDQ4ow9RqBNV9hvEGgTFfYegcYBxTOAQDuY93qefHkWQKAdyJNCXPXreCYQ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\"","module.exports = __webpack_public_path__ + \"img/Physician - Medium Gray.71c70235.png\";","module.exports = __webpack_public_path__ + \"img/Proofsheet - Blue.29bedc71.png\";","module.exports = __webpack_public_path__ + \"img/Configure-background-blue.64cc31bd.svg\";","module.exports = __webpack_public_path__ + \"img/Multiview - Gray - Selected.6b9bf167.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDI6MjctMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDI6MjctMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MGMzMDFmNjktYjI0Ni00MDQxLTgwMjUtOGU5ODA2NjRiNDZmIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NGVlMGZlOTgtOGM0MS0xNjQxLWI2ZjctNWI4OTE2MWNmZTJkIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ODZkMjRiNTMtOTY3Ni00NzQyLTlkM2UtNzZlYTkyMjEzMDIxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NmQyNGI1My05Njc2LTQ3NDItOWQzZS03NmVhOTIyMTMwMjEiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjBjMzAxZjY5LWIyNDYtNDA0MS04MDI1LThlOTgwNjY0YjQ2ZiIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0MjoyNy0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6TONW2AAAIJ0lEQVR42u3d23HcRhBA0UVH4NSUqFNzCKMvV8kuUcSSwKAf51ThV8TOYO42l5QUr7//ebnGXuublzV0uW684kVn65Mr+58Powl07xC7LxBoHg6f+weBRtC8PhBoJgdLrEGghcmagEBzLkJYJxBok6G1A4HGFGg9QaCFxPpaBgQa4bDeINBCgfVHoBEG+wEC3TwG2BsQaFMa9gmBxoG3byDQvmXGHoJAm74QaQTaYcabLgi0OGOPEWjTFfYbBNpEhb1HoHFA8Qwg0A7ms46LL88CCLQDeVGI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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAQCAYAAADj5tSrAAAACXBIWXMAAAsSAAALEgHS3X78AAABKUlEQVQ4ja2U4U3DMBCFPyP+4w3IBmQDugF4A0ZoJ4ANYAPKAjjdgBG6Ad0AM4GrF12lNE0IsXLSKUrs+Lt7frbLObNUuJhqYJWDf+suebUg4AXYAl/9sesFFl8BqrzJwddDc4ohLiYPqHpBnnLw+7G5RRCrXtJsx6ofhVh11VhVNq7Fa6v+Qv+h6G98K4GL6eBieuwB9H6wrP8LaP8dsrCLqbLNTPZUVnOqn4R0YA3wAHwA6xx8mgtgbOOtk5P2O3m/FMDQYbRD9Q3cSx7LdSngDKIrwcUkVz3bp10OvrEO9mbbckjnSpC7foFNDr7rrtmbfQYxgOS4A26BG+BVXdkYZtviThyfP9L8fWKeupNsgp2i310ra/9HWX7yqjenKf8KuVBSXwakI+BVdxSFTpZ/AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAACXBIWXMAAAsSAAALEgHS3X78AAAB1klEQVRIid2VMWgTURjHf0+ig4u3dIhTMMkgQoVIhkYIDgkoQuUMlFKkiwFDIHUQqYM4OaRIBB3q0i4uDiKnAVtBBytIB3XpUsQsBRGkHV5L42CHJ8+8gzNI8u6SOPiH4+7e/333e9+7774TSilsJS5eq1FeeGgdEFBMX4rFTytAA3gE1IEcMA5UgUVgQ1XPlKMAfP0GEU8mgBfAOuCv+CPw1pynRaZYJ35iQNDS/GXgHLCsHwpsAS2gBDwDUnz9vD0IKNw7OnU2z8RkKTJIZIrnowSHB3nSPq2IOjRqgK//D/TPiqHzHWUKF0LGHfD03h21u/PDNiBq1V1haX4V+f2nev98f1SgOeAx8BqYAY7T3i2wt9MGZo1/y8xtmJZ2PywoCMkCaeAo8MH474AJ4BtwGBgD3gCFWMhMlk2jzfqDynU2xN2Xl1hvHgFWgavAmgHlTEypk1E8meqJmLp5oB5UtoQn9bwvASetXKdls0rrpio8mTernQ0M622sK9fZ7BcfZutOA/nA/0prEngCDBWktalc57p/IzyZtg0M04KOAfIv44mhgUR5oQLcAJpdlq6y28bvKdutO2m+jTHhyVqXp9uQ9ocCeqUP5To6gz8kPNm/vIFf3SKWl1FDkgYAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Physician - White - Selected.eeb9ece4.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Blue - Selected.caea3f51.png\";","module.exports = __webpack_public_path__ + \"img/Trash.724f4ab8.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAADO0lEQVRoge2aQWvUQBTHn9vFgrVasB6kwvZQQU+7HjSXiLl62v0GLl6DGD9B10/gquRast8g/QZbmkv0YHvyYA8NWBBU0KqFirLywktMssnOJJlkE/UHYVmSTN4/b968zJs5M5lM4G+gWYQG3ZbXAWA94fSeKlmfRT9TiEd0W1YAoAcAHQC4y3HLFxQEACYAjFXJ2strQ2Yh9Nb7dLRy2rEPAEMUltVbqYXotrxCD72f5YEM0FNDVbIGaW9MJUS3ZQ0A8CEXxdkei4OeViVrzHsDlxDyggEAXdEWM3jC6x2mEN2WOxSUeeMgKzs4kLBiZ6YQEjEuoSuxwMFAmSWmkXSiQiKQNtpCXTyW2IRIN5hpRdy++kCE0SFevtvy/rYpTntx1yVl9kwxcWutUCFIV7flQdwAMNW1aIjlyc7zYpO6fYiQRyhbp05GUV4dbUXfZCqwizK8a9DnkE/UI2UkOxG0dVvuxwohbxTx2VEUoZ4T9EjuLlUyraBXgkJih7WK49vsCtFtuVeT2IjS9ZKk55E6esPDtd0bfpVZVy4unIfVpWvcLZ9dWM5vHj9ou9Ek18zM4iiid+MFd8uXlzZKU+Hlk0Y0sdQQ/AZLX0WxnOfw8eRt7DnPax++H5T6OrBXNVnxEQVFHB2/nnnNj19fBZrJRSdxPlI3/gupGk2azm6KtGt58QqsXbiZ6/40YNmokNrv9dV77lEmjTRFsIqC5SI/jzgi6lbmm4fMa+60HsGlcxvw6eQAdp1nIl7NIQSEjEVMqlj5BTn9+c3/5bmeA7dHeaOWKaLFOWH6QlTJMqkSXje2vepjMI8YNRTi2xwUMpyPLZlxqCe5+EJUycLoH9VISGIVBdFqEis7qmSFQiGU2TFwsLYKAE+TWkgzUywQLdr01EejKlkYK9tVsDaBx3GrwEnfWn1KNO408vj0vVvPFQm2mYERvegpElesKrbQA6xVq8T5CLlPqUjwZ196gz9iOtTQvBixRMA/tTwdhGrERglxs08bBrj3qGTdwqHRIVoQzosG0WTHQ55NNSs0TGuiNtVkEeAhaptTh6riCg0OLE85tM1pTDuCDvPaUMgOOvJWbE25kBoBAPwGv/kmAeo/BlAAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Physician - Green - Selected.11f2515e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsSAAALEgHS3X78AAAA5UlEQVRIie2W4Q3CIBCFvzP9LyM4ghvoBtoJdAQ3qG7gCE4gdQOdQEfQCcQJMNekplGKTWz/mL6EEHLHexwcHML+PgK0hXD1qbnW2AqIdbH5LgGWQFbjcADmMQFgDSxqbKekMtgEHHZfyEuBUJTFonWL1CHzqZEGZI0h1nmNYNAmaQj/I/DogPumaYr3Hr0L2rfZSk4pBh2iz6Je4HckYp3R99yn5tImsVg31ldWI1gB5w4WfwTyLrdoSJ+mTfCqyWKdHso7tj41eYxIrNNPgX4cNBs/UC36k4Bdi3lUAJgCs6AFeALOmnQDMB8LegAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAsCAYAAADxRjE/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjIxOjQyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowMjo1Ny0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowMjo1Ny0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NzIyMDBmMS1iYjYwLTVmNDAtYTc0Yi1iZDBhZjMxMzU0NWUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODcyMjAwZjEtYmI2MC01ZjQwLWE3NGItYmQwYWYzMTM1NDVlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ODcyMjAwZjEtYmI2MC01ZjQwLWE3NGItYmQwYWYzMTM1NDVlIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NzIyMDBmMS1iYjYwLTVmNDAtYTc0Yi1iZDBhZjMxMzU0NWUiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6MjE6NDItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7JxkLcAAABpklEQVRYhdXZv03EMBQG8O+YAFaABW6EK1iBGlep6VgjLRWhZQVWoMgAgG4ClA2+K85GycPnOHb8J0+yEifP8U9PkZU770iiQCgAXejgq9UY/tEBeEUEGiRzNsVpdCHPyY2GhkbBS6Cj4aXQUfCS6GB4aXQQvDQ4CF4aa9o1yS9feGmsAfe0hxVeI3i24rWBDbBzwWsEm3YRXivYCa8B3M6MkXCVE7wneZQAz7EGnrXSe5JDINi0v/ytgCdtc+DU6CTglOhk4FTogwAP+tpqc6wNVqK6g676qvNsDrwmOhtYotUWwGN0pyfsagcbtJzYFy7HHXOAbZX2hbciv+f5Cy45eIxeApd5WcES7QMvDrahXXAfMEm+6+MvyYbkp+4/B+R5o21A+Qv5UoVJ8oPkDckX3X8gea/PbxfmLULb4HNgg2n0eaP7tnu+edbm2glQAN7EtW8ABwBD8L/4K8Tc9oXCFH4HoE2F8Q2fPReFKfwR7v2SH3G03VuS9z9c787MOy6Xw6JLXvXwkEHF4aEDJVxtAT2G97krvSOjtpmfcF5JhpiHLI0TMZEInbyX+L4AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Multiview - Green.384f51d6.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Gray.7e73106d.png\";","module.exports = __webpack_public_path__ + \"img/Delete - Light Gray - Selected.ec114687.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAAE4UlEQVRYhbVZv8vkVBQ9GWysEvAPcFCLtdiP+QNciN1WX4KVYDOFhYhCYGsl4D8wlXVAhBWbidVWuwEruwELCy0GrIUEFiyz3Hznzrx5ee8l82MvTPHNJPedd++55913v6jve1xrUd0lAFYeN/s+i/dXLyLrXAo2qrs1gJQgWwCN59EVPwJ4K59LwZ8FNqq7JYCCIAVc1Wfx7ox3cwBrAt/0Wezb4OVgmeaCC5V9FlfnLOLwJ5st+ed6bqQnwUZ1JymsmL4y+PCZRtAVMzTpOwiWvCy4+1npvgCwZG0DIOE67dlgo7qr5ji4lRmBSX3rOcFGdScpWfZZvH7bIK11vwfwNYBHLsDvOF4QgF8BeDpzgRXVIWUmTFNJm5SrqO5EKT4D8CN5nI+eMSNLeREt/BbADyS+s/LpvCAgeaexAdFfyoUTytXWE6ADBUjBXZ/FmxDYhtLUkPiqpRvjmSV3LiCL2bLz8J5ZSHsXUByLTtbOTf8HsHoimTw1KhXyPVO+JchRhGaCzulTMwNXbagW91mcusDuCXYUKablfQAfAri/Vsa46d8BvOqz+D7w3CHT8vcCx6iOOGeYqMNjAP/zqLwGqGbrZwB3pIfPSp6ag6kaHFLiMYnsl/xJ+HxySBjnvl3BJ42LwUUptIqUqFiEI2PtyHOJ8HlBB0tfVOmwFY6Sp7LTLVOpmtyw4KQghEqqAC03Vxp836jC0F/LNXym/B4im9KJzwozFRJRkl8AvwbwT5/Fo1SysodzP6q73wA8A/DEwfdCew/P+g3pUC3YazpbNaa3taPOv18A+HiKw4zonRSTS+jpq/Vxl5sbflswsr7qzl07puPP+yx+TxxRLVxA14zailW/9oDaujZiWKtgk0Cjknqinms/So2UyOhBYgK1G5PSA6rxFRltoN5CUXss8RTeScT7LFbeDYCjutOisDsoZwS5ht1XmHaI7CU2ygYrXED/C+CDPotzxzNXtZpTYGc7N64+Uvl3VIyb2mIi/L7fWoufidEKfkGF2ZC39oYutinO+iTlwD37VMIx3Smr32zzQuoSwjFc5QXsXk8jh/mqVBbUU2nHlu9EvgQwO6bEkLbSI/4+1VEbTtgFFwuB9VXvC3ZOeagLo7RJQP4D8HyOupjGzB3UwKtxBJHYVCAXH/FUCjVAavL+X3JVcvhaBiQS5qG1ICBfZMFGwrwpqNjnPJUkavJZ20XH7/acd33CHqOxaLcxBh4u087soflmEewC962GTvVyeKKhc1tEnA5NFGBh3gasdRPiWppgl2y+nc0Ef/9zqrOfawTxBwDpLT7yzgke2s9W74DDocCdN7YuGlaSn3cB5TjHZPPvMgAb13vckDZCgHWCCaDCwbsdo36vVTvRLAeN7255l/uU31WOA6Okdh/pZl3FC2pa4RJ73O4qbnNeG3ydG4xutiOwOBbTS05HSt+V2xhbnjPkKH0zWVJQPt8B+Ml103aBFad/A/imz+JfZkYsv3Z8RF9PAPwq4yvn5MYzmNPLXfB0uqX5aGeas0UkwJSXvbc+SWRwgkAxY5icWMV08zmtUVyTA+tg883OKefZvLtllKVAWcwrFtMk3Wb/t8YY+6gKbC+JtDEqRUgdrgJrgdZmZkeu7QKSpP8H04GzcvPswr3qP4yGjiogl4lk6Sl4ubIAeAN0FB0UqM4UAQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAiCAYAAAAkjjtxAAAACXBIWXMAAAsSAAALEgHS3X78AAADcklEQVRYhe1XsXLaQBBdMemBP2D8BcyQMoUKpcYNrunS0rmlJB2tU1GT5lTjgg9wZvQD9vAFtvQFl1nlbVikO+kkO3GKvBkNErzdfbe3uyciay0JorSYENGSiGIiyonoSETGzocn8iBKC+ZPcbFNBhv+bEWUFtewjcHNlI+8aj9QYtdMIiIWx05WEGAg6gIcKEqLE4Kx8xg2HGwbpcUxSotRw0JXsI+RmGv4YA1sx/brqo8ywxAU2/nQJWwEh2s7Hxo6Z3WJILUsgMPBd+BkFX87JGbts5dFyY7/5pUlYfITmXzE966LTD5hDu5jMvnRx9UXmXxKJs8q3xky+TLEXsXLRN8AmXDWiwA1nEVpMUV2ajvhsct0SSFjJzsf7kLs4eOImFtSNewVq8DBP3J5NDWhA1vUNuFz3cFWRLOPCQ+FQQBfwBPkE+q5SzBORo5p0LiTLSh3doDMNW4xGiVGo3TJrsYUE6Av2DYeYMUG9eXDFiskjJw+iJGcXpCdkZLguuK5utVzj2smSosyK3Y+XKMc4h4BR6SCvgbVk07mq4jmADvd1XJYhAaHzwl8GnR9L5SHkRYcKGAFwa2jDbuVoX656Ubo+M5A08ZdpkQJCcjl0yKWs8rZXEmfhM5vD8op01kwRMtBcMTKL4TivUTESg+ENLcTONwmXE6dS6IqDofBtFL3BrWfV/gjtZCgWsbpavA+cXqV4D5Qondt9ex6gfrrgukseovpsauegCiza/y+1K8C7yJYCdN/GDQy7EDtoHlXwX3Qa0r8S4KviGhPRM88iXAdGuwTInpUvLGHx9/fgXfr4Uhsibt3+dOCZ0T0ANIXIvqM65snwAwiv4MnAV3Y4/cm8OJf4OsGz3c1vvo78mitPYT+dbHW3sFGnhf2F2YO7hifjNtA/xvwL76XDCfIwNeWLGiwzb16lvuZg/vSwW+jnQiWIPdVQgN4gU8O57467ooFyu0CHwKdzCpCuiysDzaIV9txESyZYmE/HAE2KAFBBBvdSLKgp7p5JywwSW6cvlRTPFtr9x2abu9puqsGm7amS9o45Ah4wH2Ca+ExnoG/AU9PmTGmSNIiWPMSJO2gnhM1YWqCZYUHe8YzBPkysgDHIuPjyuKr2a4K1rxH60bSJPitLl7kQ+CsDeHV5vBbIwmc6aG8c7f/f1v7kyCin0MbjNTPTm+nAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Pink - Selected.9f0578cc.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - White - Selected.bd182927.png\";","module.exports = __webpack_public_path__ + \"img/Close - Green - Selected.eded00fa.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAANCAYAAAC3mX7tAAAACXBIWXMAAAsSAAALEgHS3X78AAABqUlEQVQ4jWP8//8/AzJ4J6sqwMDAYAAV+iD0+PYFmLTzV1NkuQd7uU8/YCASwC2CWjCBgYEhHk3rw0eqzFOKN/PaMDAw+KPL/bwllvOsKCCEgYHBgYGBQR4mzsDAsABk3r39qR8YYBa9k1VVYGBgALmcH919PzkZb9Ut5ZG6p8XMgyF3Q+zWs9IACYb/DHw4/HUR5ACQZUxQgQ3YLPnPyPAJlyX/vrB/ImAJCOhDzWZgeierGgAVwABXzVguYLMEBF51Ou8nYAkM2Cs5zg4A+SgAl4qVeRzcuOR+XJYSIcISGABbpIBL9oYxyxdccv//MFmTYJECEz5Zvnf/WfBIfyTBIgaQRQdwSVpt//ULlxwz34/zJNizgQma3rGCsCk/hHDJCaUf+0mSRUKPb4NydyM2Wd73//XjO7+fxibHY3/HnU3x7VEiLEm8tz/1ATiOhB7fbsBlmc/8n6aZ1d9AGQ8DSE9ea82m/GYLDgtAcQiyBBxiKGUdtIQoQCrPwN4GBW/oDQGQWAJSKgUVLRv2cp9eoOQ4GyQGyiagYgwEQKG0AVb8MDAwMAAAqP6PuIYo3rYAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/ZoomBlue&Black.f18f9aec.png\";","module.exports = __webpack_public_path__ + \"img/ZoomGray&Black.589689b1.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAQCAYAAADj5tSrAAAACXBIWXMAAAsSAAALEgHS3X78AAABKUlEQVQ4ja2U4U3DMBCFPyP+4w3IBmQDugF4A0ZoJ4ANYAPKAjjdgBG6Ad0AM4GrF12lNE0IsXLSKUrs+Lt7frbLObNUuJhqYJWDf+suebUg4AXYAl/9sesFFl8BqrzJwddDc4ohLiYPqHpBnnLw+7G5RRCrXtJsx6ofhVh11VhVNq7Fa6v+Qv+h6G98K4GL6eBieuwB9H6wrP8LaP8dsrCLqbLNTPZUVnOqn4R0YA3wAHwA6xx8mgtgbOOtk5P2O3m/FMDQYbRD9Q3cSx7LdSngDKIrwcUkVz3bp10OvrEO9mbbckjnSpC7foFNDr7rrtmbfQYxgOS4A26BG+BVXdkYZtviThyfP9L8fWKeupNsgp2i310ra/9HWX7yqjenKf8KuVBSXwakI+BVdxSFTpZ/AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAB2CAYAAAAJHju1AAAFUUlEQVR4nO2dW6hnUxzHP64ZEhqSmAeKELmVyySN+wNpKLk8uISRWwilKA/Mw2jiaNAYZ2RIZhg1cpsHnDyMY4YwYShPxmXIGJcJ5TK08zPN0jhnr/9/771+a+3vp87DqdNe373296y111q/328jhBBCCCGEEEIIIUQKtpmwzWU/6KG0z0HAOy22spGZu+9b94+37+CGxcTsAOzaYh9FXXvb9nSImvzZckdtjPljGUIEyBAiQIYQATKECJAhRIAMIQJkCBEgQ4gAGUIEyBAiQIYQATKECJAhRIAMIQJkCBEgQ4gAGUIEyBAiQIYQATKECCjdEHcDxzrQkQ2lGmIn4CngzklzT0RAiXkZxwPPAvvZ7xsS68mK0kaIW4HxLcxQsV1CPdlR0gjxEHCtAx1ZU4IhpgGLgekOtGRP7lPGecAHMkNz5GyIEeA5YDcHWoohxyljqi0pz3SgpThyGyFOtilCZmiJnAxxA/A6sI8DLcWSw5RR7TQuBC53oKV4vBviCOBp4BAHWnqB5yljFvC+zNAtXg0xD3jEgY7e4W3K2NMOpmY40NJLPI0QZwNrZIa0eDHEvcALwF4OtPSa1FNGFciyBDinxw/hLwcaNpNyhDjBpog+m6HiVwcaNpPKENWS8k1g/0Tte2KaJzEpDKElZcglnsR0+Q5xGPAkcGSHbXqnOrq/zJPGrgxxsR1Zi5AXgR099UkXU8ZsmWGrLABO9CaqzRFiD4t1PKPFNurwSeL2/8spwF3ASb5k/UNbhjgVWATU/nBHizwIrHegY2/bhT3YgZb/pQ1D3APc0cJ1B+U6R1pSEJWX0qQhpti7wrnJu0BsyR8xvdGUIaol5fPAAXoU7vgqRlATq4xq13G1zOCWL2KEDWuIubbrqDoTflkTo2zQKaMaDZYCR2XcUX1hWcx9DvKfXaXPfSgzZMGPwIoYobGGmG3pc1PK6rdiqcIRf4u5ubpTxs62pJzZ9x7OjIdj5dYZIWbY9q/MkBdvA+/FKp7MEHOAMW9BHKIWswbppskMEbWGFW4YtSSnxg0xz75ev1rPOht+Bm4cVGydd4hPLcrpmfL6rkguAn4Z9MZilp0X2LJT+OUBy28ZmNh9iKoQ6OnA9zKFO6ol5k3Dihpkp/JV4FDgLf991BuWNBX3Meih1NeWaPNE//reHVV9zgubEjXsKeWlNo2INNwOXN9ky00cW1cvmucD3zVwLVGPcYvYntN0fzUVx7DUgkfHG7qe2Drf2Kg8PfYUsy5NBrasN6GP6WE2zkc2NRzY9ntbG1HXV1gtyftbuHZf2AR8DLwCvGznSZ3QVl7GiJ2QLnZQenh8mJ27jlhrP1VAy2fASuDLFELazNxaDhxu7xcpP3N0ljbS6tN2cOznwHHAoy23MxFTE7adHV1FS1dn8zcn6pwSPyPVGl2Gz49Youu6ju/x947by5qu8ynG7L0iOrRrCPQ9jQhSJNhUO5pHA4931J5KHUaQMuOqqm5/dQftRCW79p3UKXgLbBWiZaETPORkrrIQvVUOtPQeL0m6a22kWORAS6/xlrVdlei7xoGO3uIxjX++fb9b8RUJ8FrXYaV9SecNB1p6hedCH99aXul8B1p6Qw6VX6p3iqsc6OgFuZQCGrVzkKgCWiKenGpDjdl7xUsOtBRLbsXCfrJvc93nQEuR5Fo97ha9V7RDzuUERy03YYMDLcWQe33JFVZFV/sVDVFCwdF1tl8x14GW7CmpAu1twJUOdGRNaSWJFwLHWLT3v2xKKykvSqxR/a7Fbb5mv++SWE9WlFq0vMqAOs2q7soQQgghhBBCCCGEEEK4Bvgbwqmg0DTSGPAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTU3Mzc0RTVBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTU3Mzc0RTZBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNTczNzRFM0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNTczNzRFNEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pj9r7g8AAAQlSURBVHjavFk9i9VAFM2G19gF7SWFxVq45AcoxM7qMQiCYDOFhYVF/sBKfkIq6zSCYhOsttuAbGEXsFDQImAtTCHYOrPcu5wd5it5cQcub98mmZx75t5z78w7uri4yDYYhbbKc20mO3jsDnhWaqsJpNI2eu6ryAzggWy+CbCltoZAGnCdtmnBswLAdgEHnSNfsMwtTT4RU80CoBkArOiT5yu3BFsBA2bifoPwG2l1GHC7BVhJ4GTqhCtAV0TCQCu4KmZ7erimBPpfQxEZEhhXS8AyiyK7uWHIuavtu7ZjF+CdZ+lfaXuS+JKK2Kgdy8iSliJXhpin2t4ScBEDy9L0jDK2DySUoHsVgWkcgEpyoiNHOrrXRVADIdDT9w5vOrIq2AgZWtBnbz3EiqA8AEM6y6AlPGcDzeDdAufPLe9mkCkFFaq3ZKyzJ0rUWQHFgOfFKojh09irmltJ1Xoy1YxzbZ+gCq0dA83xWdttmN8laxk5cw0sy8YcUIcH2v5u0JRw7L7TdhKpYC06s7OSJSQrL8FjaZVarvvCwSIqQQFhxBnfI3sOdlnvVU5/lAHGBGT8QEAHaAk5IRXdyzImQLpaun8AoOyMiug558elGgiaqA14Jy1nuDz+0fYzEHc8TKw/1vbI0fyUEXYZm8itRsUlN8rBuvl+pu1+QgxXFJvnHgZneocvdie+lpNHUyAEBo8Tz7XdiXRi3AgZwHv6XgYUItQ/ZByzvkal9rAuIGwkxGYRqEoc3yLQMmYBdus80lEVnmW2GWcBH0GahKODGgKhUMSY3R2glcohb+alvyg+976Xrh2x5lstdKChzD+JLOtqsEUEgM+JwrqPW8EXsM+SifMlg1URZmPZa1clbIKk1bGF1EVF5G/OKc6qyMbOBZar0gQSZTvKDXkPajAsUB105hLsFAHry94z6pxEZEvO1e+3tveJ6uJM5jyicRP0DjaAY8r6JrHx/kZbpdJxrQhUwquiFWOWG4nOIfaC5InPsqQj6SRcfwitaGXN30b2Zj1ua/gYqA+EQwebQ2ElRGqLmMEOoYWCUgdC4Ko3YLBl5CjH/P9rQOzXFJUv1FvcCyhBS9c6LAoztIK+h85J7KsNwBrnbxEBXcChaypj78EaR9xN5MgesvaQww+eY089Lp7+2AR1yHpuyRHGkkvsJ4qvhl5YLmSTzxcqkDsJhBSgAJXN+s6R+eahN3Q64hLxGbYuPWx5xsAhh7COTV2Kw/Oc+nYOR45jejPpD22vtX1IZExscHyU0bbnIx1fDSlgM9jcxarTlsMVdkkt4gTLLG8AaBUDGutnZ4i3/tD2LjAaIKU/tPnmUJg2ZrmG0lunhFvqDyBYal19wFKdHeFsTabuSJbswRSAlMD2CJ++eMQD5zFb/ktPUA2WCH0NgHyxj06tHv8EGAAd2mV77+1nUQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/downloadCircle-icon-blue.348a4c8c.svg\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Pink.97d7ff9d.png\";","module.exports = __webpack_public_path__ + \"img/Advanced Search - Blue - Selected.4b59ffa7.png\";","module.exports = __webpack_public_path__ + \"img/montage-icon-blue.640e98a2.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAACHCAYAAAC/I3MxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDJCOEUyQjNBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDJCOEUyQjRBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRDgwMEJBNkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0MkI4RTJCMkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrSzCe0AAAcVSURBVHja7N3d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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAADMklEQVRogd1aPW7iQBT+dmUJCQpS0aFATRHqadY3WG4QjsAR2BMse4NwA24Q0rw2UFADoqNaFyAhIbF61jNrfmxm7LEx+aQoSjRjv8/vzfudb4fDAV8BTlYciKgBoHH274VSapHF+6xohIieAHQAuADaAF5ubFkCmAAYAxjZIJeKCBGx8F0AP1PKMQUwUEq9JX1AIiJExML3ATwnfXEEPCHUN91oRISI2GwGAH6klzkWbHpdpdRYd8N33YVE1APwmQMJiKbfiWigu0FLI0TEtvuaVrqE4PPjKqX+JiYi3mis4YXuTuaWaRWBBESGsXzYq4jUSBJzqtfrFmQ+xWq1Cv8dqZmrkV0OtvGZyIHIi3jN7vm6C9MSF/vbukT28CqB+ATXNKLt8qLAX/HsSxqBNXtDu2+cy4VN7EQjErHziBNpUQXQCz/j3LSMU4M7ohf2Ykciog3buVOWONFKWCMXB+gB0D0hIipKm4rfA8/iZY8aeURtBPC1ErhfN26l4zioVCraT+b1OcINE2nHvZdJtFotbdFMSFuAnwsGplWExDAx+Jw40u3Qxnw+x3a7vbo80Npms8mRho8n50rLJhZMwvO82DX7/T4rgaPQ0C51C44vQ0S/+VBwLPiMWG9hlkolVKvVVPsNsXC4XUlE9lgAqNVq/k+eCExrmetbLYMbeUFkn9hI4Wez2c01zWYT5XLZd+MckyyAGxLHFGVsI/u9FV8QijH8W2e9Bvy2amBaIxtPvBP+E5H5xPQBSXhKKV8J4TiSuntyBxznKWEiI5lPPBIGF0SkR/RIWhmGR3YnKYpMih4hpnjnratrNSnXwO9RTzCpFDNE/3yAepE0yrjrTxGkjcCHUuriCMSNFSZBCcxJnO3cabfbYb1em25js29rjxUEbjDo4ZemaUpbAp+LTtTUKrIekQ1uQQKlJwOeSdSC2MKqIGSWt0hAp0IMkRlaFU8PH3ImYkkgwYWBjqQFycs/PXjiYrUDtFHNLgkat49+ZZjODEULRllG4ks10sHvSQBNW5R5oulB0ptCtq45tYWQa9B+nYp7HwepeBpkcoNOiLHGwpfP2Gn4h9bksowWAPwDLjsoAS7GxOgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQ5MjhDMjRBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQ5MjhDMjVBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDkyOEMyMkFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDkyOEMyM0FEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po/swngAAAKiSURBVHja1FndTcMwEE4j3tsNCBO07zwkbNANCBPACBmhSLxjNggT4L7xRpigZYN2AnClz+KwktTnc5Ny0qlp6lw+3/+5k6f360RAC8OZ4QLXOe5PkhPQhfD5D+b6peGV4cqw4r4sFYJ9DQB7afjZ8NZwOSTY2vDe8KPhG8J9YC2xQR9zg5lhbbjpEKiY5lxC5uHzloAufOT0gc2guTk44ZqthTSxSIXPRqrZBQRPk9PRFu8R+Wwb0JcIWhVT2uKj9TkC7dKsPgOgZVuWcH125ywYS6MrWPdP8Uh7djam6VckrZWxisIpwe5xXZ072B0C/Y9208hBcQjOb8Ja4E41ua4s2BI7UU7t5rSJW9T53PktJ/V/EaDdPTLSAwU7Ra1WAUA1TPVl+M7wFfrZK3z/wu+aCVgj75dWy6kjQAWY6rDRT8hR0KItpwr3P7GulhaFaUdB8PFRq9ECZusyZ0E0XErAuoI5YK3z7zz8r5IWGkk2yJnW0M5zg89gCfHRWOtc+qZgpZNo5gkkC5BdxHKDdZtAjxevx/BZRQJs5jHLVYHpMRpYmvBnR4ZOm+a4A2a0UXyJkjgng19GfLTE/TnWccr5zElz65S8VJEE7kuNk/APfcAGEbzBd1o4moDm6AUbVRfEpFOyo4QJOCMNe+4EoQr0U9sm1q4brLr8hOnDBVKh5UISUF0BRjvz28CcONh0S2t3Iu2OhhjFFdFuMxIem+bUsd5gB3fIRppsLdA5CdLec4NqRI3aQ8CTdl0xNdp7EpT+F6BcsIoUgJjU+ADluIFKfk+qNxBaIyi1ACjrbM0XrEY1uiSFw4KfdJh34VTFko7VHfNclBZRwfz2HMBS3781b4Tv0XssJf7CDTAXdN1j3qP96VADY0gntZY2NT8CDACdhq0u+wjsoAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAYCAYAAAAlBadpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjM3OjMyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0OToyMy0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0OToyMy0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiZDgwMzBiNi0yOGNjLWE4NDAtOGIwZC05OGZhZGY2MzIxOTEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6YmQ4MDMwYjYtMjhjYy1hODQwLThiMGQtOThmYWRmNjMyMTkxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YmQ4MDMwYjYtMjhjYy1hODQwLThiMGQtOThmYWRmNjMyMTkxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiZDgwMzBiNi0yOGNjLWE4NDAtOGIwZC05OGZhZGY2MzIxOTEiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6Mzc6MzItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sbxI7AAAA0ElEQVQ4jZ2U0Q2CMBRFT4z/MAIbyAiMwAbiBo7gCDqBuAkjOIJugBNcPwCttYU+btKEQs55pM17SColNZKwLiRVGmIWbPjmCpywxKk8pV1TecoeaFMKh+BkQQyeBHcgXwMD7IAuJliCZwUpsCso18BBgQUGyFyBFf4RbA3Qi+HqAHqgToFvQBP6EPvti/NcY7jnA3AEnuM+G/f/8brK7enGef+wDoNcUh8Rf+BSUh3p2dNc9aWGL7xBUVlgxskypVuaJH5a57nwTztlnUMH9gYsXcKFRwJb2AAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/markImages-Icon-blue.8591120e.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAiCAYAAAAkjjtxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjU0QUYxNDhBRDA5MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjU0QUYxNDlBRDA5MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2RjdBMzFEN0FEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2RjdBMzFEOEFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpDtXpEAAAQZSURBVHja1FfPaxNBFN7dbsUeLIl3ce3JizZlQ4kBdZEGUTzUgyIetKcWBCEnrZ722F40IFooKlGKYHswPYm0QkD649DAivea/yCL0BaKJn4T3tTX7SS7m6qlDz5md/N+fPPmvZmJvrS0pDGxgBHAAXygDJSAqtZahH6KIGw8svG0aDJMtg69e9JHNpv1g8oGe3YZOeEkTwRKREoVqErBShQwT8EKNNlEG6J5sndIdxgEHfIl7MrLy8susMuHThmWWVURS5BDOSGpP0Kk/RaEhL8i6XgBf0Ui66qyKAVk85Kb1JOEq2xJVWIRaYuIuGwJ20mKyKXYtxJBfNdApK0DkHZoxZqkDQpcakNWTshjBEYi1qcXKClZBsWI9mJCZdIv8Br2IwZPU6arWnQpEFFJ2NViCkgLHxaybZkx7CxWGnHEr2v6D4zXNa0xb0RLjkqaK2tQ5sKWOEGlU42ZXdqKGnWgH8E+aJ1Lcycy2NaVD1nWIiPfiTgx9mZVWfi8hl3afgoBQhbbylwqB6eDeIkYvRKyWn8cOYFTyqOs8i4v08TiZHmE+XT2S9hUFHYxQtcXIm5tCVqZFDuCy50QxQ7RPICMDmwLgVELOWzCjvioIgiXjA6NgyUSJOoysiVWdmHN3e60s8QhYu5jxnkilyckAsRUR728FHlRSwNk5enqqGo4rlRjZsxnt7NiWFlRZot0k6vyy8//FrEaT2iF3gDz/NZGDTYs7+eS7EESlnKirmm30UjnaYuVPfXtp6bPXMie+xo0OGjCodfLdv84DoXsarpUKnXaNM2Jrq6ui7quJwDx+fPKyspQi+yI7y+Ak8An4A7qb8/xOzg42Auf9xqNxhW8vlpdXX0b1Nne3j6B4b5oSsTtBb4AD2BXUxJOp9MZkP1oGMYaXkcBqZhsQdbGsABMAovAFPAeuLwnK6Y5g6EBAmcxHlf56+7uzuH3o5jUIxETz88xHgNuKQnD4B2U1pChXMTVEZNah/44TeAxhlkxEXyrBHTv4lsNv/3C8xGVM8R+TeNODoGHQcLNGs5kMmJ2pyhbUWWIMitFPtuK/bTG4ukxYtSUTYcysMnxYgxnfSLDClLJv9RfN4C5Vk3XCNl6bE4k5sQ6kQmKN9lqW1tnxFo5WGCQNn1sUknua5+ZFbU7pvJlsvqrkeJNRQ2qGrFCdcxrWn7vVISPWWBcVQ47hKmDx6jLRQan+baG31XGYrnWoD9BE26O0F2nbIv3uXblw/Xo0yz5qgQSUNtz0hGpHDNcoNFucZOq0GqMkq5817CX5oDRer3+ndvgXfy2E5PrYZwGkkSUl5/9z+8Stm0/xXCpUqn0t9MbGBh4Jk62np6eMwd6l9jc3Ly6tbU1FXo59v1rGxsbL+P41rEMh+ryc+hua78FGABqfYntdPsgrQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Green.30e2d404.png\";","module.exports = __webpack_public_path__ + \"img/Physician - Gray.71c70235.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDQ6MTgtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDQ6MTgtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzIxZjJhYjMtMmQ0Ni0xNjQ0LTk2YjItZjdlMzVlMmM5MTVkIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6M2YwMTgwZGYtYmE4ZS00ZjQwLWFlNTEtMTQ4MDQzYzI1MTc2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NjhiNTBlYTYtZmNlYy1kNzQ0LTlhMTgtYmFlNGJjMjdiZDY4Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2OGI1MGVhNi1mY2VjLWQ3NDQtOWExOC1iYWU0YmMyN2JkNjgiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjMyMWYyYWIzLTJkNDYtMTY0NC05NmIyLWY3ZTM1ZTJjOTE1ZCIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0NDoxOC0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tF+A2AAAIJElEQVR42u3dXW7bOhCAUXsWk/1vJ6thnwrcW9SNnEjU/JwD6LWRSfHzxEnb+Pz8fLjGXuuHlzV0uS684kFn64sr+58Powl07xC7LxBobg6f+weBRtC8PhBoJgdLrEGghcmagEBzLEJYJxBok6G1A4HGFGg9QaCFxPpaBgQa4bDeINBCgfVHoBEG+wEC3TwG2BsQaFMa9gmBxoG3byDQvmXGHoJAm74QaQTaYcabLgi0OGOPEWjTFfYbBNpEhb1HoHFA8Qwg0A7mvZ4nX54FEGgH8qQQV/06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\"","module.exports = __webpack_public_path__ + \"img/Add Patient - Gray.f2ff5730.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDM6MTYtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDM6MTYtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzFkYjg4MTUtNTE2ZS02MjQ4LTlhMDAtNGVjMDFmMjBjMjE4IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZGU3YmEyOGItOWM1MS00YTQzLWFiMzgtMDE0ZTlkM2RkODczIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MDU0ZWQ4ZTUtYzY3ZC0wZjQ1LTljYzAtYzk3OTA2ZWJlN2YwIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowNTRlZDhlNS1jNjdkLTBmNDUtOWNjMC1jOTc5MDZlYmU3ZjAiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjMxZGI4ODE1LTUxNmUtNjI0OC05YTAwLTRlYzAxZjIwYzIxOCIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0MzoxNi0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6P6SUhAAAIJElEQVR42u3dXW7bOhCAUXsWk/1vJ6thnwrcW9SNnEjU/JwD6LWRSfHzxEnb+Pj4eLjGXuuHlzV0uS684kFn64sr+58Powl07xC7LxBobg6f+weBRtC8PhBoJgdLrEGghcmagEBzLEJYJxBok6G1A4HGFGg9QaCFxPpaBgQa4bDeINBCgfVHoBEG+wEC3TwG2BsQaFMa9gmBxoG3byDQvmXGHoJAm74QaQTaYcabLgi0OGOPEWjTFfYbBNpEhb1HoHFA8Qwg0A7mvZ4nX54FEGgH8qQQV/06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\"","import mod 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/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPage.vue?vue&type=style&index=0&id=24c84049&lang=scss&scoped=true&\"; export default mod; 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/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPage.vue?vue&type=style&index=0&id=24c84049&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/Multiview - Green.384f51d6.png\";","module.exports = __webpack_public_path__ + \"img/Microphone - Green - Selected.e3af008e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTkzMEI5ODFBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTkzMEI5ODJBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1OTMwQjk3RkFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1OTMwQjk4MEFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PscTYawAAAHHSURBVHjanJXbccJADEWdHf7XHUAHkApCB6EDOx24g5AKIBV4UwGkA+eDf9yB04HpICvmKiM0+zBoRgPs60i70uXpdDoVAdt477yPxf22wH6yo/dhFlhUe2+9997XD4AouDm+b+kMEwGQLbFoqq28l8jigjFLZ5gIoMBCStdhcw7QwQfcAINKkwBQRHvvFTbnABbZa9BocFgbuLY9NsnDUoBCXDODaL42GOjV5oMA0FyDdS4DkKA9QNdMRqTWJ0ryiMMqZJkzDuxq/CYpkBXRfuGTMjqrB5aAm9KXfcKgTr1FIQCder9a7LGx3tJ9Esvogshb1XS1yOgn1rwmEHEIRFHuxO8PrGnV1QXVwUQeLlcM7ygC1rlVqgpMYi4Hkk3rVHlPhqxQvjGQVIUlMtveA5FaFAMNShV6rD9qrTMZqbAJ0FKVugPgVWudmaBFNpMR207sO+MqyxBkEdEii6uZUgzctAdkdgPZYPAtokWbCVWnVeGFgmNIKcrQKVBIKmKgdeB/yc1EFlY0GCttk+jkkNbNFYDmz0ZA2Crcv0MhjA807D+A36RE2ZH9ev8EZKpp0A2AIWs82DOqq0GjFQ+AvjWA7E+AAQDC9J0Cds9OtgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Green - Selected.4a05149f.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAByCAMAAACGCthEAAAAGFBMVEVMaXGUyD6UyD6UyD6UyD6UyD6UyD6UyD7GqCxTAAAAB3RSTlMAwEBw0DCQ1YCcvgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAJFJREFUeJztzqkBAzEQADGv8/XfcfDBYQukCnTub6HRCrSK5a05S1ytQKvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqt4tt53idejtYxWoVXM+cw6M98/jgtMobs15CIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAaCAYAAABYQRdDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjQwOjU0LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0NTo0OC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0NTo0OC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmY2M4ZWFlMi1iMjM2LTgzNDctOWQ0My01NjFlMzZjMTA3ZWYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZmNjOGVhZTItYjIzNi04MzQ3LTlkNDMtNTYxZTM2YzEwN2VmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZmNjOGVhZTItYjIzNi04MzQ3LTlkNDMtNTYxZTM2YzEwN2VmIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmY2M4ZWFlMi1iMjM2LTgzNDctOWQ0My01NjFlMzZjMTA3ZWYiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6NDA6NTQtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz60G8rMAAABdUlEQVRIia2W4VHDMAyFv3IdwGzQDVo2CBPQDegGdISMUDYIG5QNMkLYIGwQJnj8sExESFKn5d3pknPkp2fZkrOSRCY2Zq3ZNCTl2EE9Oklhzn+OaCPpKKl2ZK0jbySdJe1ySYP+orRAQzTD+XcTWdnb8xV4d+Mpl5/AA/AFbAEBDRCASdKNPc9ANfK9NZLGjW2Beo7Uo8vwuQc+jHiXQ5qDDlMJhP8iTcRA3vIXI5GWFknACdvFoYKRsbFvIKkYOXsJhZ29wlXR3r0H51OmOXfAzvjfgEfi2RuidqrOA6X12PIbew/mUI4uaQHWLtIT8dCfLEBgREUWLB+V5aOaaTCX7FdOoV/yM32JXo1E2hI3yge4mdSTXav2Z44nbenVVjeQdmPdvrOEHxdsUmrqnSY6v7+PDgt3vpwi9UdMivfQ3EW3dyqDJNYT+TkQS/CFWBQtsfJq5xOAgtiYIRZNB1y8ogtTOod2mKaVlv9MJKtNWTN0/AYAaamicLL2IQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAADFUlEQVRYhd2ZMXLaQBSGf2noZecCMLmAnckBTJHUcpXWoklaOqcLdClpUxnauEF1XOA+meALZOACMTqBMuv8ix/LLqwUISD/jAZY7e77ePu0+3YV5HmOsgrS7BxAm9cJgAtLV/cAFgAm6srjaFraXlHYIM1aABJezRI25wCG6srjaFbIti9skGbKcwMAVyUAXRoB6OZxtKgMNkizLoAegMhyOwUw5TDPpLc4Ci2GiQqZ2NI+U33ncTT4J1h6c2gxMif82Ncror9LtjVDSP3pZFN/Tlh2rLx1JoozDtvQF3ADeMKwkqP1oEbBBWyFdYBu/eclgG0j5wReg3WA9vM46lUFaYFWfX/aBhxa2g4N0M4uQZXYf0cUnZFjRSuwfOrlkPSriE9PYGWnL4pi8jzz6TDg8M9EwKd5HF3WAboClGZj4TD1QLd0OEjPyicz4wq1DyW0D/Is598Qz5O3XJm8V5WqRbty+K/It/Ss9OK8rjh1ifbn4nbigt3pk19AkuMvLNM8ufSNawT6BuA3gGvLPcnRVJwhkwyttOZYfQvgA4DX5g1ypKKobcKWToxL6hTAZwAfHc0lz5NnT0TBpGZYFQIvCWyT5Gk1jK1Iocy9AgVbupA8FyvLrec2Qy15X/mpPPMewHf+vi5Rz23I4GmUdI6KtRccvi8A3gF45NN9C+BXwXpesmVdPrql0R+sq37f8fsb0d63XnFYvawdikyekPt6rYOCNXjuQx5AaLXtbdakY80Wc7LMt55LkmfR4Fym88dzjw7kdHNn/HZ931RvkyTPJMB4oQp+isLTfaWHUtwMPIqiVyHPnmQ6VvvuwCHJodLWqZ4NZP56iCniE58NtskDiL2J9ptWWC5rI3FzwJipXeIAUGukl125KHSNjdq+tjZDY+O63I8tYTkDyDiJeVJSm2hPnlv05MxkOz4aGw06dWwgGac3omjt3MKWyCQ8a9K62bWH2b8EfbCdWxzVKaI1RWTFtuFh1eGsqmmN/cx8QfHfnHwbRg7/nYIBfBxva1YaHMN7MGtj/zeMCuopVEq/YQTwB7UTiLkaUePjAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/blue-180-rotate-icon.a3656dce.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkU1OTQ2MDhBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTNBNEJCNzhBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGRTU5NDYwNkFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGRTU5NDYwN0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoT+ymwAAAIGSURBVHjavJQvSENRFIefc6BhwWAwLAgKDiwLgrIJvrYFg2GgYQObBoNhQdBgMAgGFYyGJxoUjAuLij5QmLAwYSaN2hYVNubvwu/C4bLtXnF64GP3/dn93jn33jMQhqHXITIgD3wQ570mqIESOAEfnmOkUikvYtybAHegTFFcPIuCJNgBb2AbDLrKomKc5teOiHt1UGE2o8wwBobBHsUroOUqmjAkD2ADPBnvD4F1SpQwBwJQsIl06QIhuQTzQnIIXsE0+ALHYAa887kq8bKLKMOJdSZ5oxSqPOMsnY4XZtPk9a6LKC+uN1zqzQiZvYoE17inyBcL/+T9LAIxnrNtBr2FK2JNkkbpVByBhri/Jf6js3La3rreS1wTM5LGtZr4sctcHUVN/urFXjQW/oiSTVAV92s8FjoaNlGNE/k8J8/GO3oCJbk1nuXEuGrbDCWOYzyMrqHaT1GUvWwTqQb5yWt14qccRftgkuMLW5ON8IU9kdUNmDV21ypLrDM5ENl4tmxkC1Jfd83xGLgH52CB5+uMLWqNwqIxz6ntwOot2WIXDtgpovzNO5Yxxqyy7BhdM9KyAoX1HpM2+UFZ0VilLG07sDquSJptJcH3GtzCZbHwPtd0zJZZ1NI0Q0vJXlxlEe/3oWU9y9gPkZOsXyKbrK+ibrLSX4hM2aU+iwPtdtv7j/gWYAAHdHxIP+QzbAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAYCAYAAAD3Va0xAAAACXBIWXMAAAsSAAALEgHS3X78AAABQ0lEQVQ4jaWV303DMBDGv0a8+QE2oBuUSvgZqBfoBu0IbEA7Ae0GZRCLvPuhYQO6QZHwc9CFc2SMe0nTT4oSOb5fzvcvo7quIcl4PabXVrlPad+VSPlVyfextKno8GYJ4JYu4/XjYBCAVfS8GQQyXq/Ym6AJr2WVDbbx+g7A/oTN1CpXpYv/QMbrGwBV4k2sLwq8Ve7YdbRSgJCuaQ9/MA8yXu8oFgIkaJIGvwUZr58BLHpAghbG6xbWxIhr5P0MSKwnq1wZPNoNhLS2o9n3vZTqvpqSR/MLIaR5V4v0Vgo6XAKKK/RkL3XoWETzhkRj420AqCy4AcORHrjPPs6AHIgRYrSMXrxybay5QbvU2DYgqkwA2wRG1U5tIyVgy7Z/xwgPrpeeR1pb5drk5OYRVbrUwJSMTTrcxN9RZuBX6UBrBOAHsSNrkVl9VMwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI4AAACOCAYAAADn/TAIAAAACXBIWXMAAC4jAAAuIwF4pT92AAAJ20lEQVR4nO2dzY7bVBSAb9LpD/3RGKlddNMJgkXZMJHYsKmwukbq+AkmfYLmDZp5g/AETZ7A0yUbCGLDpiLphhUi6QIWrVQHaAudFqOTOTckGdvxvfa9PrbPJ40qKjq+sb+ce+6P72mEYSjqRMMPXCGEI4Ro48d2Vz5+SwixF3M7ZkKI6cp/j/DPsRAiCD1nFPPvKkllxWn4gZTDxZ8kKfJihiKNUaxx6DmBvU9tj0qJ0/CDgxVR9gk0CZigRKPQc44JtCcXSi0ORpUD/AFZdgk0K4k5SgQCHZc5GpVSHIws8HNIoDlZGKJApYtEpREHo0tXCNGxkKvYBnKjgRCiX5YoRF6chh9AUturQHRJC0ShXug503x+nRnIilNDYTYhLRA5cViYM5AUiIw4KzlMtwSjI9vAaKxPKQciIQ6OkvoVTHrzBpLoLoVRWKHiYJSB0cS9whpRTh7D6LLI6NMs6sIYZaYsjRZwz6Z4DwvBesTBKNPn5Dc3hth9WY0+VsVp+EEbuyYq60hVYYJd19jW57HWVTX8oIPrNCxN/sA9HeE9toIVcRp+APMyj3iYbRS4t4/wXhvHeFfV8IMB5zPWGYaeYzT6GBMHk2DumooD8h7XVNJspKtiaUgg8x7HRGNyF4elIYUxeXIVh6UhiRF5chOHpSFN7vLkGXFYGtrsr7zSk5lcxMEhN0tDn318VpnJPBxv+AGsOz0o4pa513eEe2Nn8WfrclPsXS5szVaZ+UkoxvP3i5/R83di9OKdCE6sLf8chZ6TaaIwkzg4xf0oSwNUcc43RPeTi6Jz60KpREnD8Nlb0fv5bzF9/a+Ny90PPUc7+miLgwuWI5vLCCBM7/YlsXu+YeuShQACdZ++MR2B5jhBqLUwqiWO7REURJnjL66IL6/v2LgcCaArc3/4a9GVGUR7dlk31vdtSdPePSfGd6/VShoAoupPd68tumSD7OOzVEY54uCuM9/kp5FAwgvSVL1r2sb9J6/F4Nlbk5fwVPcxK4mDXdTURl4D3dPozlWxv3vO9KXIY6HbgnynpdJlqXZVA1vJcO/TSywNAhF38Pllo5fAZ5ua1OJgF2VlYznMyzz4+KKNS5UG+BLBl8kg91Q2v6fqqrCLGtt67wm6qLolw2mALqv1zR8mh+nw3lY7TZeVNuJ0bUkDCTFLEw10WZ09o6OsPXzWW9kqDr7LneqX5QFM8jHxGB6eA1185omk+Wr3bM4OuxmijVz/oU6WdTXIdeDfG1yW2MVnnrhnOTHHQfN+NdG6KGAI/vIrdUdBGJiiNzzXkSvwBel/9oHWyNHCvA7wUdIJGdu0t/KqhaStOfyGOY4ySQPAaji0e6YROVpXrCzuJj772BZgtCH/WgssCJahe4oCRkewGq5Ky86ugMOkXCepBVajDdB21CNOWaWRHP9+ovxvLIkjkhyIbAHO21iPNo7GmtQ4KLc4Fjdv6XAYt085Tl1rw2+GPJEuxIlj7eV1hjyRLpwRB9cr+Eg1RrIXtYYVFXEKO+WJIUuyOEUlxQx5ziTJmxGHow0Tx5obLA6TlkRxXL6NTAxrbizFwcyZj1pj4thdHV2tRhyONsw2lo6wOIwK6+LgUItPm2C2sS+H5TLitPmWMSlZuCLF4W6KScvCFY44jCprEYfFYdKyJg6vhjNpWbjSbPgB5zeMEuAMRBwjJ28zlcZpcn7DaNCu1umLjDWaPIfDaOByxGG0YHEYLUCcrUdaMMwGrSZP/jEa7HFXxWjB4jBasDiMFiwOowWLw2jRxLNtGUaFWRNrMzCMClPuqhgtWBxGi2aeJYWZ2jDiiMNo0cSqMAyjwhjEUS7kydSeoBl6DpkcR+fMX51DtSmhc7Zz0YAzMschMQmoc9i1bv0HKuhUyyn4UO2FK1Kc0k4CHtw8X2p5dMolFlyGYJETS3FIdFc6N2QXqwVnqXNVBLIIv07ZoekrY7Wq0rAQR95tEOdhka0RGIKhDI9qETCQ57s7V8Vk/p56bYQlWcpHFhxxFkFGtp7MkByqqehWAK5DuWn4YpHpqrDq66TI1kgGs3IVLLNNwQXdJrJC8GqfQCbP+f7FOwItoUnBX6ylI+TEAXSqxtWBr3/5x2QR1zQsHVkr5trwg4DKWccw4rh38zyBltDAQrH6bcxDz1mebLI5fCETdTpPXmsVOq0qBz++KnrEuObGpjjHdtsSD9wkuFnzkgyvTQLlokfF531rbpAVR2CiDCWW6yyPpRrjaYgXB4daQwqtlEh5JiWv9qsKfFkISTOUw3BJ1BQtqagjVuSBUUUdgOmI9rd/UirCf8aJtVHV8i/9YEr1MAKouQ0Lg4e3LhBoTb6AMDAVQSCfWWUWes6ZE03iFkwGFNauooB5DBhxdZ++WayMuzd2FgucqutbFIDuCKIpLLMc/3ZS9BxNHIOov4+LODBef1lQQxlafLiZ34i412MoJslMIZxJiiVJ8b3Hz6r2xDoQK07oOVOOOrVmiA5Esi2j5KhTXxKffaI4HHVqS2K0ESnfHQfz5nW/kzVinqan2SoOmtev+92sEf1t0UYonFbR5wOYasEsbZCInACM/B9Pi5X7Ju8eLCU8vK3+nlHdgKUJWLszgBd6Tqq1ytTz9PgLH9f9oVWYx2mlERoHK3U4Ua4kc3y2qVESB6eflS7AlIJO3NJCHMpLyhjOeG6nOgxVuiiJ7l6ELpUX+JhMTPBZKqMlzkqXxflOeZnrdFES7d1PoeeMdW1lSNDFZ6hFpm1zoefA7rAj9qB0HOGz0ybzfsvQc3qcLJeKIT6zTOSyUTf0nA4ny6Vggs8qM3nu8HZZHtJM8iwVntv5Z5CdN/zAxXeM93V+x+g5vBbCJ1VsQ+Mot4U0uiOoKFIvcqb+hadvSGjLw+RO7tIIE0VAsIHcbdHAiDTCVPUYlocExqQRJrqqMxfwA5gvODR6EWaTYV6jpziMvzeLH4AnCe1xZFoaYSPiLC/kBx3clkjiqLgKMsdlhEwzwmmxJo44laeNL7HziCtfJrhgae28aqtHPOAHc3mJIleGmARbPeTcasRZu/Dp5vcBd13ayG0RhRyEVdihMviBW7wBXgu4Z62ipBFFRpy1RpxGnz7VU8AIMcMEuPDj9kiII/5fqujiD3df68zxi9U3NaGnChlxJA0/aOG7yzxpeAokv700r+XahJw4EhaIpjASsuJIaigQaWEk5MWRrORAnQom0TOcmiCTw2yjNOKsgqOwgwpEIYguxxRGSaqUUhwJRiEpkVuC0dgcN7kdozCliC5RlFqcTTASufhDZT1sgrKMyhhZ4qiUOKtgNGqjRG38MZ0bzbDY6RhlGZc5qiRRWXHiwA31UiqxsfO/lSDXbKOwvyz8BZIEoeeQKRJnHCHEfz+84EQN086xAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAADFUlEQVRYhd2ZMXLaQBSGf2noZecCMLmAnckBTJHUcpXWoklaOqcLdClpUxnauEF1XOA+meALZOACMTqBMuv8ix/LLqwUISD/jAZY7e77ePu0+3YV5HmOsgrS7BxAm9cJgAtLV/cAFgAm6srjaFraXlHYIM1aABJezRI25wCG6srjaFbIti9skGbKcwMAVyUAXRoB6OZxtKgMNkizLoAegMhyOwUw5TDPpLc4Ci2GiQqZ2NI+U33ncTT4J1h6c2gxMif82Ncror9LtjVDSP3pZFN/Tlh2rLx1JoozDtvQF3ADeMKwkqP1oEbBBWyFdYBu/eclgG0j5wReg3WA9vM46lUFaYFWfX/aBhxa2g4N0M4uQZXYf0cUnZFjRSuwfOrlkPSriE9PYGWnL4pi8jzz6TDg8M9EwKd5HF3WAboClGZj4TD1QLd0OEjPyicz4wq1DyW0D/Is598Qz5O3XJm8V5WqRbty+K/It/Ss9OK8rjh1ifbn4nbigt3pk19AkuMvLNM8ufSNawT6BuA3gGvLPcnRVJwhkwyttOZYfQvgA4DX5g1ypKKobcKWToxL6hTAZwAfHc0lz5NnT0TBpGZYFQIvCWyT5Gk1jK1Iocy9AgVbupA8FyvLrec2Qy15X/mpPPMewHf+vi5Rz23I4GmUdI6KtRccvi8A3gF45NN9C+BXwXpesmVdPrql0R+sq37f8fsb0d63XnFYvawdikyekPt6rYOCNXjuQx5AaLXtbdakY80Wc7LMt55LkmfR4Fym88dzjw7kdHNn/HZ931RvkyTPJMB4oQp+isLTfaWHUtwMPIqiVyHPnmQ6VvvuwCHJodLWqZ4NZP56iCniE58NtskDiL2J9ptWWC5rI3FzwJipXeIAUGukl125KHSNjdq+tjZDY+O63I8tYTkDyDiJeVJSm2hPnlv05MxkOz4aGw06dWwgGac3omjt3MKWyCQ8a9K62bWH2b8EfbCdWxzVKaI1RWTFtuFh1eGsqmmN/cx8QfHfnHwbRg7/nYIBfBxva1YaHMN7MGtj/zeMCuopVEq/YQTwB7UTiLkaUePjAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0UwNDdFRTRBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0UwNDdFRTVBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3RTA0N0VFMkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3RTA0N0VFM0FEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiCp2okAAAMASURBVHjavJZraI1xHMfPOc1lmEKbS+KI2dxyyUSJkTeyuewFuYW8cQtFElKIsRfktiQtbyRKzTGNvRBWB7ODNyymrSkjQ8JcNjq+v/r+9PP0XOYov/rsef7P+T/Pd//f7f8PJ5PJ0P+wNPkTj8flMhrcAmfBFjOnCygEs8FEMAh0A63gBagFV0mbrxBNPtIbzOC4M9gEtoIsl3fl915gLFgNXoMScAK0+wlZywUXwRiOP4JycBPUg88gA2SDfDAP9AOHwXKwEDwPEhoo3uR/K+45AI6DTy5zq0EZRTeCHWA8uEtX39eJEZeXMynyirEp8xCxJr/vBxPAU9AHVIKhfkJq/cENCh7sYHKJyDQjJu7vFCRkre0vMvkNmA++cIXr5WFY6ojp3ZW+dtpP8D6F0tkF9tEjUbuib6DFhaiZMwzMcTyTb0wFs1hzascYOwlBQZDrljHrxJaAS/zoNbCAz8uZbSvBPZBuSiLG+0KvOpICvQ4GgId8tgqsZepLN1jMWpH6mcQ5Zxif8xxL3S0FebqiFfyvwiagUg8zjXglXxoFiriqEawltdtgpBnX8zpYV3SaLUXc8MRjlY1gDdM2D1xhz/tu5rQb14VY8GLd00z6au/yslNcZTPIYfWvo5haT6a1Wg8VVNc18ZrtIxRmgMXeMtukMKeYOXL/2Iz1e00qVMvrdB+hYlAF9jBR9oIH7NrnwFHG77J5J5/XGi1Y6bYXwAc2VfVtOmumjuMhdFud8YKsdDJrKG66iLjxJd1XpDGKMdOy2IWL+fyrEdGEaHSsVLboOy4e2EwRiWlFxHSFEt7vBMP/ceeWtN/O+0OSjRFHy3gkqUg/Z6Yo0pfvi9sToNTZvaUGFrGB5rIQc1JYSTWzrYU77Q+3beIZd8Z3FEnQlRkBAhL43ZyvIvKdht+1YbaJkCP/ZdMaZ3bQmDkztDLQemaYa4ozwZU0/FGEHkIh7owbwDY2ziBrZuBL1V0dOQVpzI6Akzw7FLDHRc25Tmqphn2vwu2YpfZLgAEASnbF8laZdLwAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Light Gray - Selected.786f1c0d.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAYCAYAAAAlBadpAAAACXBIWXMAAAsSAAALEgHS3X78AAAA9UlEQVQ4jZ2U+w2CMBDGvxL/txvoBrKCG9AJ1A3YQEfACdQFwBEYgQ3UCagTnLmkJMej0vIlJH39Pu76OKBsU5TtkYgQ+yUANICbquwRkUrEcja4xODJoH9Wlb0vhVmHUIMpONjAB3cGjaqsXgKzdgBqn8Ec/NcgBJYG6RJ40iAGZq2lQSzcM1hFQF8AjWtbAFkI/CCjJx+NL+yraGcx53wio3MAH9fnHPMQmMHuTsvnORu2BFlPt0mszVSxSNzOmQEIMprHCzE0KhSKa5FPqrJbAC8xvyeja1/OPZHRbz4q399DbphMhyMRuQWUW5RtMSrPRPgBj9+fX7sX4+kAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Microphone - Blue.a1a0bcb9.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Light Gray - Selected.ba932ace.png\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Pink - Selected.dfa0fd01.png\";","module.exports = __webpack_public_path__ + \"img/appStoreDark.d45b7b44.png\";","module.exports = __webpack_public_path__ + \"img/Edit Patient - Gray.0beb849e.png\";","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Pink - Selected.599fefe2.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABRCAYAAADWxZSqAAAACXBIWXMAAC4jAAAuIwF4pT92AAADh0lEQVR4nO3d8VHbMBTH8QfH/7AB2YB0AmAC0gnICHSCZoQwQc0EpRM0maDJBskGZIL0dPd8Zxw7FvAk2dH3c9c7ygVsOT9LsnJ6nO33e/E00n85WGTSTlMXHb/sTkSmIjIRkcuBte2rliJSiMiriLwNuylxtPVMI72QtyfY5o/aichMRObDOu34msI01QuXW0/UZak9NL1Ui3qYXJB+9ekEe2atQz+BalANk7tIf/t0cj211GuFmnP975VONNHtVudQaAnTjDnShzxltEzi7Vx7pelAzrcvLrlmh9ycyXfSvausu5yqkYbEZ0lkS+/0nguTC8dDx+tye4rxvcG+icgqwvkMwoXn3ZXb+kqhN89jx+tGLWEqpw5Xgc6vyaoyarj3axzx2C4bhQvTTccL3aPwJtJJ9UnhEaZxy7D/mujTg3sN8O8Ex77r+mxOMg2SfLHdqT6GSrn+9XDu8SLCBC8+PRO+bhsonGOP9cFdoIcEN1+8rn6DMMVRBFo1X3gMqatAw59rz8/qN3yGOcALYYIZwgQzhAlmCBPMECaYIUwwQ5hghjDBDGGCGcIEM4QJZggTzBAmmCFMMEOYYIYwwQxhghnCBDOECWbYUBDHXaANBT67sUeBjn2wSYEwxXGbcGPmdX0XSSgMczBDmMJYJzruJmGBkTVhCsNVQPkT8Xhux/Czbvac69fbiMd3bZ0yZwpjoztpY5XUeav9VYWFTrxj1Utwbd0QpjBSlNRxBdu+69exS+q4to4JUxipntxiFviq8yqpA3ihZ4qDkjowQ0kd4CMIE8wQJpghTDBDmGCGMMEMYYIZwgQzhAlmCBPMECaYIUwwQ5hghjDBDGGCGcIEM4QJZggTzBAmmPEJk0+ljVOUa7s/zWdDQcq9WClZtjubkjrLjh0ON/qDiyOvOUVPHm3yvSbZlNTx2c/1mlkPVXi++bH28g/Chd5djx0n6zb6/RORlwwu4LS+ubDFsY2Va+3RY9tELJZRtzzb7/eiVTS6dobivR9avqbJWOcpMd/YVWVonkceSVx+ZmWYDnZn4qidTmxTFdbqpXJpYB65ONTQzQjSoTJM7sJM9I7DcS9HhresVRctywIHBKrdi07Q0aC+Al4GiiHv0DNBOq7p45SVPgk89+lEE3I31r3nImbWyqe5Nld6N04SruCmsNX1tyLDlf9P6wpTkxCFo/piw6r2J4nIf2ITqU0/OgETAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/PDF-icon.33f4f022.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Rjg1MDc0QUZBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Rjg1MDc0QjBBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGODUwNzRBREFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGODUwNzRBRUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ph9SDHIAAAHQSURBVHjavJU/LANRHMfv3CGxmPwJgw7tYLJoJCKNxMBEoovBxNJEMBgsLCaDqSIxtAsDAwMRbcKAWBglQqSLQWNDSalKz/cl32teLkev5843+eT1fr9373t973e/Uw3DUNYu+hSHGgRpxYVqOB6CAXAHJkACXIJujgnOe1RcyjQKgD1wD+JgDOTBCUdx3c7frqRzHAX9IMlFhWEGRMEuCIJXL4xuidCmlF/lmOVYD5pBDhhEXksFH1LMYKxs1ALeQJHbKeKaNFmoDjSAFymnSot+gZLFvHy//tdD/kXC+AHciG3XFf8k1u4g5arzXf9mZG5dGw9No7n6w/wCDzzHObWcr1V4aM00epLK1SzJko2hKsUKllJ29I/eq9yJcZACn3wtfDmjGXDA5toKImAJzINr9swjMsT+GdNdmGxwkTBjzzQROmPPzPL8dsAxWNGrNEmy0Yal+BUYYecQ2zkJTmnUy3uiplGogkmRjTZoMTElf6PWLQ8htG0aZRz8owifVtYiWGabcVR1TtRFs7gUGwZbjo2mes5tkzafeLHgrHQd8qMFNbLCrAp4aRQDc2DfEhdVtsC8J2fUyXejCUxbcnnmPTFKk5RNzknFKt8CDAAJxWyCamu8KwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Refresh - Blue.fa839df7.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjIzOjI4LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1ODo0Ni0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1ODo0Ni0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4ZGIyOGZmMC01ZTFlLTM1NDctYjk0MC02NzAzMThjZjAzODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OGRiMjhmZjAtNWUxZS0zNTQ3LWI5NDAtNjcwMzE4Y2YwMzg2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OGRiMjhmZjAtNWUxZS0zNTQ3LWI5NDAtNjcwMzE4Y2YwMzg2Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4ZGIyOGZmMC01ZTFlLTM1NDctYjk0MC02NzAzMThjZjAzODYiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6MjM6MjgtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6henV2AAACmElEQVRYhdVZMZaUQBD9w/MAzAnEPQE+D+AEa+wm5kSakq0hoVcw61gTjN2AzfXJCZS9wMgNvgGNr6a2GxpmhmH/e/Woporq39XddNNsSOIIpAB2VmIArx0+9wBaAJWVem5lmxlkEwCZlecz6nwAYKw0k54kGSoxScPTwti4QRxCieYkW0+FJcmC5I5kop5L7P3C+rnQ2vhHk409lTQksylZEfEy+7yr0YPxxgLXjixkEwn6JOPj3qqHCE8hOtryGeLqOS/hUKLFiUlqKUIIux7ULT1Vt4cMC4lyjGy+cEbHMpz7yMY8HPCPWraQyJ5tKYaDdDI+p4VFJ81osolKf3Yhor1kik9CEpFddTPH2n1JGHQ8emQA/me2WVFWXdlt+mGQqpQvOVa/k9yTvHXYYsUrjdDtRXt8Q7f3XApvAHwA8Mphay2fHjtNtj4XKw+2AD4B+Oix10JPI3Q7/B7VWSj5sQdwhY6wC5XQkw1J+anwAlN37+dFAuBPX4iUsQkIQABf7HUP4D2AH7Z8O8NvCId81IwLmcG0s3hL8rMtvyN5bfWriX4h9ZEkdWZD8RXAXwA/RfnO6tcz/IKgySZTA5wZiSxE6L7rncYVIBH6fYTDRWAXGOS3urpsU/x8kHzaZ+jeZW/tjTQgwEbod6rs04f8hiD5VBuSKYBf4uYWyy65PsToJmePlxG6JU1ux26W4zOIG6E/AKj7t4ERhmIhMmMohG4APK0vBelghLHlir/BXE7lhciWvqRpx1ylv1iYaKHqz6V9rGXkik9k+uFQL5xhndGagWddPsKlK8CREvPIU8Qhwi1XeD471HJyhSffUnJHFmQlBVfwT0FnxXgqnAvDCb3zpP6DzSErkSLsD2ODbndX4YiDlH9VNvOByTPNkwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Exams.6ec0d2a4.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Rjg1MDc0QUJBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Rjg1MDc0QUNBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGODUwNzRBOUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGODUwNzRBQUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtBV4xQAAAI6SURBVHjavJVLSBVRGMevZi8hlR64KFExtATbFN6iIFFcuJDwAbbQ3JSYIRVBKwPFFrUoSC1bWBrkLkFCXAguBF8XxYUKSQ8oUHduUtwkXH+ffDeG4ZyZUS9+8OMw58yc/3yvcxKi0WjoICzpbeSGjDnwy/LOdaiEQrgAp3V+GRZgAj4/CI//8RJK6JqWfUIj0A+fHGtXoAvCAX/6CzxCcMW0mKhjNvRAPRyCdpjchYhYNSwSoVteQpkSRujTULTA4T2kIg0GEWs2CaW7Ng3HIfcdiFW5hc7vYoMIfJDkww+fdz8idtIpdM7ngy3ohiy4CnehDnLhMgxZvkuBZ06hHB+hV9AEpvKdo8rKNbcma8Cr1KAe3ddS97J7MGaYT4Y7MaEMn00kBKPauEbDKwlvo4bZbWVBQxfS3noOxz3ElhjGDUs70UhyeSTHyiL8hO/KkiU/JpuFItfcmZjQY5iHb7C+z/7ZsB6qevTEy9JsC4lxvg2uGeZWvITy4B2cDapAvxRajq9ILHROy9TqqtVnOUJuBxA5wdBrWR50eiSCb7TKah0v1cBTHxH5dgDyDctruvZfSBrtEhwxvPwShuGma/4oVMAMlFr+o5P+2nSH7glMWcTKlDXts2NQoEeMzaQnX5uqbg4e+qTjlHoW9hH5JynAm3Vbeb+H1n2WuISqGpExvz5q0zvn7x5EfkMxIl+DNqzcohf1Jg3qxQupPEQitiPIZqt6k7boWKLi6Y6/n9UrpN+ZD5NtCzAAWtCCL7KcwKMAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Blue.8a13e643.png\";","module.exports = __webpack_public_path__ + \"img/Close - Pink - Selected.298b552d.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Gray.6806a88f.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Medium Gray - Selected.ff13ddd0.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Green - Selected.9a87dcf4.png\";","export default class CanvasRenderer {\r\n constructor(canvas) {\r\n this.canvas = canvas;\r\n this.doScaleToPixelRatio = true;\r\n this.canvasSize = null;\r\n this.imgSize = null;\r\n this.transform = false;\r\n this.isFlipped = false;\r\n this.isFlipped90 = false;\r\n this.isFlipped270 = false;\r\n this.flippedX = false;\r\n this.isDeepDeeAnnotation = false;\r\n this.forceTranslate = false;\r\n this.toSave = false;\r\n this.name = \"\";\r\n }\r\n\r\n clear() {\r\n this.prepareCanvas();\r\n }\r\n\r\n drawImg(img) {\r\n if (!this.imgSize || !this.canvasSize) return;\r\n if (img) this.renderImg(img, this.prepareCanvas());\r\n }\r\n\r\n drawImgBounded(img, bounds) {\r\n if (!this.imgSize || !this.canvasSize) return;\r\n if (img && bounds) this.renderImgBounded(img, bounds, this.prepareCanvas());\r\n }\r\n\r\n renderImg(img, ctx) {\r\n if (img && this.isFlipped90 || this.isFlipped270) {\r\n ctx.drawImage(img, -this.canvas.height/2, -this.canvas.width/2, this.canvas.height, this.canvas.width);\r\n ctx.restore();\r\n }\r\n else if (img && this.isDeepDeeAnnotation)\r\n ctx.drawImage(img, 200, 625, this.imgSize.w - 500, this.imgSize.h - 500);\r\n else {\r\n ctx.drawImage(img, 0, 0, this.imgSize.w, this.imgSize.h);\r\n }\r\n }\r\n\r\n renderImgBounded(img, bounds, ctx){\r\n if (!img || !bounds || !this.canvasSize) return;\r\n const w = this.canvasSize.w;\r\n const h = this.canvasSize.h;\r\n const { minX, maxX, minY, maxY } = bounds;\r\n ctx.drawImage(img, minX * w, minY * h, (maxX - minX) * w, (maxY - minY) * h);\r\n }\r\n\r\n drawAnnotation(annotation) {\r\n if (!this.canvasSize) return;\r\n if (annotation && annotation.hasOwnProperty(\"isFlipped270\") && annotation.isFlipped270 != this.isFlipped270)\r\n annotation.isFlipped270 = this.isFlipped270;\r\n if (annotation) \r\n this.renderAnnotation(annotation, this.prepareCanvas());\r\n }\r\n\r\n renderAnnotation(annotation, ctx) {\r\n ctx.save();\r\n annotation.draw(ctx);\r\n ctx.restore();\r\n }\r\n\r\n prepareCanvas() {\r\n const ctx = this.canvas.getContext(\"2d\");\r\n this.cleanupCanvas(ctx);\r\n\r\n if (this.doScaleToPixelRatio) this.scaleToDevicePixelRatio(ctx);\r\n\r\n if (this.transform) this.transformCanvas(ctx);\r\n if (this.isFlipped) this.flipCanvas(ctx);\r\n if (this.isFlipped90) this.rotateCanvas(ctx, 90 * Math.PI / 180);\r\n if (this.isFlipped270) this.rotateCanvas(ctx, 270 * Math.PI / 180);\r\n if (this.flippedX) this.flipCanvasX(ctx);\r\n \r\n return ctx;\r\n }\r\n\r\n scaleToDevicePixelRatio(ctx) {\r\n let scale = window.devicePixelRatio || 1;\r\n let w = this.canvasSize.w;\r\n let h = this.canvasSize.h;\r\n this.canvas.style.width = w + \"px\";\r\n this.canvas.style.height = h + \"px\";\r\n if (this.isFlipped270 || this.forceTranslate) this.canvas.style.transform = \"translate(-60%, -50%)\"\r\n this.canvas.width = w * scale;\r\n this.canvas.height = h * scale;\r\n ctx.scale(scale, scale);\r\n }\r\n\r\n cleanupCanvas(ctx) {\r\n ctx.setTransform(1, 0, 0, 1, 0, 0);\r\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n }\r\n\r\n transformCanvas(ctx) {\r\n if (this.isFlipped270)\r\n ctx.translate(this.transform.offsetY, this.transform.offsetX);\r\n else\r\n ctx.translate(this.transform.offsetX, this.transform.offsetY);\r\n ctx.scale(this.transform.zoom, this.transform.zoom);\r\n }\r\n\r\n flipCanvas(ctx){\r\n ctx.scale(-1, -1);\r\n ctx.translate(-this.imgSize.w, -this.imgSize.h);\r\n }\r\n\r\n flipCanvasX(ctx) {\r\n ctx.scale(-1, 1);\r\n ctx.translate(-this.imgSize.w, 0);\r\n }\r\n\r\n rotateCanvas(ctx, angle) {\r\n ctx.save();\r\n if (!this.toSave)\r\n ctx.translate(this.imgSize.w/2, this.imgSize.h/2);\r\n else\r\n ctx.translate(this.imgSize.h/2, this.imgSize.w/2);\r\n ctx.rotate(angle);\r\n\r\n // Adjustments for zoom control\r\n if (this.name != \"imageZoom\" && !this.toSave)\r\n ctx.translate(-this.imgSize.w/2, -this.imgSize.h/2);\r\n\r\n if (this.name != \"imageZoom\" && !this.toSave && this.isFlipped270) {\r\n let diff = this.canvasSize.h - this.canvasSize.w;\r\n ctx.translate(-diff / 2, -diff / 2);\r\n }\r\n\r\n // Resize canvas to accomodate for new image ratio\r\n if (this.name == \"imageZoom\") {\r\n let w = this.imgSize.w;\r\n let h = this.imgSize.h;\r\n if (w > this.canvas.clientHeight) {\r\n this.canvas.style.width = h * (this.canvas.clientHeight/this.canvas.clientWidth) + \"px\";\r\n this.canvas.style.height = this.canvas.clientHeight + \"px\";\r\n }\r\n else if (h > this.canvas.clientWidth) {\r\n this.canvas.style.height = w * (this.canvas.clientWidth/this.canvas.clientHeight) + \"px\";\r\n this.canvas.style.width = this.canvas.clientWidth + \"px\";\r\n }\r\n else {\r\n this.canvas.style.width = h + \"px\";\r\n this.canvas.style.height = w + \"px\";\r\n }\r\n }\r\n }\r\n}","module.exports = __webpack_public_path__ + \"img/Physician - Medium Gray - Selected.697451da.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzM3RDEwQTVBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzM3RDEwQTZBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MzdEMTBBM0FEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3MzdEMTBBNEFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpOgujsAAAKjSURBVHja1FntkZswEMXM/bc7MB2YDiAduINTKkhKoASngigdkAoi//Dv4yqw0wFUcBEzT5ONBmSWlcHZmR0DlsVjP97u4s3lckkEklvNrJY4LnB9kzxAXoS/f2OuP1o9Wa2sau7NUiHYnzPA7q1+t3qzqpYEW1vtrH6z+oloCKwTNuh7YbCzaqw2IxtqpjuP2LP/fCWgyyn7hMBmsNwBmnDdNiCGeKTCZyO1bI6Nt8nj5Ib7iGJ2COiPCFYVSzoQo/UzAh2zrHkCoGqIJTYjFUxHSqi50sK7v5HoQZ5VK7v+RGhNxSoKjwTb4bh6drAtEv0f66aRk6JPzg+iRhBONTmuHFiFJ9Fe7ea0iTfU+cL7riD1P59h3Q6M9NWxgSE36cC1HKCGZG6F8xvpcyu4ssN5I+HZfICyOK7qgb5jHw2grpxqXH/HulpaFLYjBWFKjO5h0RJuG3NniXV7CSWmAxtzwLrgbyfEXyUtNBI2KJjeMN7vFp/BEhKjsdb58kHBSifRbCKQbMbeZawwOA9tOOHG5zViVpMEu8fNO5Jgei2wjo5MALAbOh3NcQfMaKP4EZXpQAa/jMSowvUD1nHK+c6juXNKbqoJgU+VxiP8vg+4IoOvOKeFg1tqFXqD/kH1C3HpljxRwgSckYa98JJQz4xT1ybWfhicxuKEGcMlqNBpKUmosQSjnfnrTE5cbLqltTuRdkdLjOKaWLdZCY+jOX2vN2gRDtlKk60DeiBJqkKNTLWiRd1LwId2XTEtGnwTlP4vQLlgNSkAMaWZApQTBjr5+6b6ik1rJKURAG09cCpGzBpUoz0pHA78ZsS9uVcVXTmuA/NclBZRw/2f0ZQ4Cf1b84voF/QeR0m8cBPMB10H3Hu3P11qYJzTSZ2lTc0fAQYA9RSy3jde8ckAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Blue.132fe393.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAACIElEQVRYhc1YPU8CQRB9eyGEWF2CtmJltCISGyotSGy9f0BFtLY1kYIfYCeh4he4tiQWdDRGQ2Wr1hKvMsaYOzM4i3zscbfIerzkmt2ZfS+zszuzJ8IwRFII6R8DOAJQBlCMcOsD6AHohJ57k3jtOCFC+i6AKoBzAPnEqn8wANAA0A49119YCEegxQIcQxEKAQuqzYtQ5OJC+lcAJICNP4hQHLSG5DX1fNMR4a24BbD3RwE6UHQeAFSmt0pHRCJKFkQovhJzTGAiIhy6GjlsrTmgLw7d16+hhaE9RaYVeu7piFsJ4cSUaqK+m8PFTi52YSH9hewZnkrgDH7zgk7HDJ7fAzy9BzPjB+sZLZGhfUtIv0v5omarUXdE++UT9cePmfHQc7VCDO3zzH2pNvXcUnLGwWFuOJwbpjfmMpEnDQ7XjrRx5HABSxvlzJwqOkR1M4vDiBOyDHtGMdajsOYMv6QwtVcQuH5L3pBYRBpHVovIrbFca2YQKaRayBrVDlN7nZD+vJNjudYo9DPc6EYKsVxrFHq0qZ15Fv+EjsP9wCBFEQPSoNK8wV3TfyNg7tE90k4pKgPm/jm+1CEJ6VOvKqctLdeamurmRx60T0L6TdU8q3FLtUY1z6MHl+5dc8ctv0jMbgYivA89d3/cSye9QoaWkjfgtSvTE5FvX37jnCxZSHP8LZNICFblEU5gx20AZwseb/Ih3+24fyWr8aMGwDewyfGjevKVPwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQ5MjhDMjhBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQ5MjhDMjlBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDkyOEMyNkFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDkyOEMyN0FEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsCAOjoAAANUSURBVHjazFdPTxNREH/v7Woa4wFMPKP1A1DExAQvkFivQky9maAHuOKpJB4snuBkYzwoqOhRPdgPQGIxtlyo4Aeg8gloL1Wj7Y6/R2f1uW67u91N7CTDo/vmzfvNn52ZlZVKRcSgc8wm7YObYRVMTU35PrcHADMCXgLPgg8ZiElFY305qMVRgc2DC46QK0pQpodM4QfJ8ycl3WcD5n3AJwfMEeKVhLdaZE1cu3K5ESD+RQOqVqsafIm9GwmcCglqBV5SAHY9BCgzfzSYDIc0kyiwjpAzADRtC7o1YLo0OZwlzs9kgFmCNhG+2357rVbrbKfTeeY4DrXb7Xt91OzrVOCciw9MewsKt0/LTt1vP5VKvbYsa0wpJWzbbvfT9ZWsIudafGBSEBTJUk9vWtYNLNkwF8G4Boz8/J3UxdjAsDmOsvCuj0gjWrrJsiVpLokcGxEJEqEgq+MlPrCm+E+kAiwcHUpgsptDiYVTdht+M4lQov7ImeSA0exPkuXYwNpCoj/SUhKgdGOHx8ZT0vkUu4mjDe0RF1p0gPf9oxRwkaQCDH1gh3spg1tS07HvoJYV4+Qa0mEOF40B1IvEeuWoah98I/UYdm4PAg5emoBhD6O0o9BjzynpbCBpH+Hf8ofqzkRY5R+r1bvw0iaDilQTQw+KmEifo8/tIXk3MQDqOavI89Y/hH0NZEl1h8PpQQp1pNFav1EAk+GLC1jdulTmMGd41b/nIXsImcFKS8yvJGEAEgwoEiX5leTXT8siYdLJf7XbFn/zAXjh75bZZfypo6ZljTOe1nr8XFPeOJfz6jFk0wg1gXNGftJ2ZeeCBpY2iuQZ8Br4qQfcot6DwC4K7RPjjJf080nwKvgS62t49EjmLfFnSFg1lZyQNKJ8Br91Bpf32dvqA8pviHTPBMrCUwth6ljNB8Aouz/oohrL7PoY14vWvF5TIQ/q0B5xvtwMIa/zcJmBvfHoIW9+4s18i6UOr+WDgHk9s8j5UufL6oYXzbVmnFnnc7keOealZdPDyidceU78tR75l2PQDUNRnn/XjJC7L0MjZD3bcg1Gf5XKsJ6McGU9HnNl3ORPc0hzRklwP+MmOXzEBmZ7hHLBB/Qyj1tHkojEMJISQ0pDC+yXAAMA7/4kPBbqTGEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg4NzhERjhBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg4NzhERjlBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODg3OERGNkFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODg3OERGN0FEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmSfQCEAAAHLSURBVHja3JZNKERRFMcNsxpSQizsZqGmLKYmyvcoWZO9kBLJXrGgZKdEFgoLTbMWC1bUiClTioWtBiuxYHzG87vTffV6zfu4M28snPp1Xvfdd/7vnnvfOc+naVrJX5g/1+Basr0RtwGtUKYQ7wnWYXayJfFjK4SIGNuHoHzwQ0GoCmbgAZadVhSWIifQaX4zO+Mlm3FJGDQLleaYH5A+rSIi7cYUw1aoKPb/hHz6d8RGNuD6oAmmIQVbivEqYRFuYQnuYY+9/soKIdLDwC6UF2Ex5xDVU7fiocgpLMjVCIvAuC4U8kjkU6SfVM3hJwzjIV3I55GQKFc18rreeBb8Hu+HEEqy5xf4LseiWqDVQq+r6i3tUBZIFauGA9dtQtojm5pSUSFldU79KGN1vHl4WH6ETha0uZfRheIwajEpYDpBllXGYlx0gLguNCUb3ABUSHQTnXbHIsgL6f02rF5/Tow9wx3MMyeRFeLiTTgBk8WxPDIEG4NVC6GIrIlmuyRmWPV4i3Z+bXHvvaCfE6PxZjFczG03kF5zI5SWEztIYz/+VeGEdxti5O5HpiO9jRvKszKIdEbJxJmb1I3AMbTl8V+3iciV+cavAAMABiF7xDGdsFQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAqCAYAAADI3bkcAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjI5OjMwLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowMjozNC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowMjozNC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5Mjc4ZTgyNC05YWY1LTQ2NDktYjQ1YS1jOTNlMjY5MmYyYzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTI3OGU4MjQtOWFmNS00NjQ5LWI0NWEtYzkzZTI2OTJmMmM3IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTI3OGU4MjQtOWFmNS00NjQ5LWI0NWEtYzkzZTI2OTJmMmM3Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5Mjc4ZTgyNC05YWY1LTQ2NDktYjQ1YS1jOTNlMjY5MmYyYzciIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6Mjk6MzAtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5ldOojAAADBklEQVRYhc1ZO5LUMBTsnQus4AK49gLMDXAAMU7IHW2KM0JMRjiEZI6XxPkmww28B2DKXIDynqAJ9MS+0cojecbjoate2ZaepHb76esrkkiEAVAAyAFkAN6ovN8AegCdWAtgSK14EkjGLCPZcDo6kiVJk9BGsl1FFK4BfA6kP8Aq2MMqb2BVfxXwfQSwERuO0HQfI29iSLaeYn2CYoZkIV9k8MoPJKtTFR7L6GZoyMgL9oFQWc9JuJmrcmVlQPGj1PYTClVhz3k7jCG58Ug3U9vwK3QqDDMpG7LCU7ubQlo/1KqSoz7XBMu430+SSYfU7c9MVrc5mbS7KVXBciHCIdJtrMxKhuNcDfLNyYN7Gu4B7GCn8QdJew87WY1DmPepbzizfSB5RxvTLiRJMo+FhEO9INkXJH+RvJHnXPHoORLPLo6ib3YGc7hTaZuYeKD9HFMIvxXfe7l+FSPJP5I/xU+b4f5Unvk+K9gVl4NJ6Cw3cv0B4B2AT5L2UtK+T/TTGABU6rke63Qu4FNi+FZ89ae9DeSl+oVsO6ayG9a2ci0SFF4CtbqvdIYj3Mr1NexC/NLYwm67AKDUGZrwo9xvIpXtDqTtjvAbg+NxDf3lVXzUKm7KhFg+t+nhtnHpvlP3n5F2na8fI2w80o3fSxe2SnFZhwiHSDviJc+3qB+zteJQjhF2VvP5PiyGnnYBVXG+7ZXDJkbYqV3xueIpGDjPYmor9W3J+EGKhgGwFjMqPVMWOkj5KcPSkNqQhw2Aj7DjcjZ3zBmGzyLaE+qsVT1JZ2tzNEQev7EtliIM7u8VBx43ROaqjmx1OHxORgPgm9xfIz7txzB7DI+Zjun8BIVxboUdKnXfTCyb64elCLewwxtgh756QtlMrna5uVBIgPvTLJk+zbtwapcMCcD++/iinlvE95AFniajFsCiCjvrlModx9ccRqk7OL9LEDYB0lnEp3Z5U9YSc8LIJ3a/ztyZ3iB5Jey4Ddhzt/W/khdQWFvFw0vYll7IXEphDYP9H5bA08/Jre/8FyXoo67DqkXtAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Blue - Selected.0125c1cf.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDI4RjU0NURBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4RjU0NUVBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMjhGNTQ1QkFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMjhGNTQ1Q0FEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsXuBRoAAARnSURBVHjazFhdbFRFFJ65u7RN8eeW9J0WNCYm1u0P9MGmtAjhwRirsWA0wGKwrJiqpAm7PKD1SfZBtP6UUhLogz4IiZbwUuOS7gMPtLahGmLig2sFX4hJdy3Blt29d/jmMkOnN/d2p+2FdJKzs/N7v/udc+acufTrqy+QVZQaIU6xSYgaxLqGvzndDd5rvuLZH14BGJMR2k0J60B9E+1fGTEoYxSFMfR9IUD2hUjx7ErfeLnA3rCJcfiO/cSpx41cI8A5nZRY/EeWjwqsrDZMCx/jfzfkAGTqYQLrs1h49vd840vPlY/dXmriOpr/C1UUUgf5AfL6csEZmvOOQUX/hmjx+CcNb+/ZG7lw67Vn+1s01v0GaYCcgUSCZqwN0sxtijeqK5+eN2i4uiy0/jHNZ8wKdV6C1Os6hg5j52Az78vGwC/bv6XUoABm+S042DRixraOvqJ0Xef7QD4MSpWcrTRs5oarH9BCzMf9zbJQ5YGB8faLrqEvIR1BAeMbXdTd7N2t6XrG7Ff7x1o/9xjOCQeIBAGMbzLs0Z8VojIVocSo6R9vPbfEfmld1koZv+nV+c1YywY3KB4BAOrHEvtNq5FiNYyV9CCA4gyYADtMAiwrYswFahqgpmJbRjeHjPD3aDcywpKws8RqgOkwZvqAitqs+DcHxdsWy2dtZsXgsBtga3E4QqNP0A/kHJtCbGx3d3ZtSfVwpzg13nZN9p2Z2DWD9gT+Vjkb03DGx8vTQQAbwom/6FB8+ZnPehkrngVTfm9+GpLEeNaDrYhuzCxlY1MAxvKs4sUyOn+Zd1z6o6d3CZs7zYid8bGvXiGBBfHoOnr35BxbX7XUpHeaRmKWXdhXtPNvvVn33T/bano2uVTIGRvSBUY1M9ioiHNty8lOXYd0xGvtajPYIeXkjuraCVKlIzCF/YKxXJDHhRtcVNRDFgnX+02EJzveB1AbBcsPNYMlShDuQD7PU+casPKfYNIEkOd5bRBbMjv9qHJ+WYZlcAcYExePepH7f/CoQpJOyeHKNkoCLtzGdjh2uiB/Qj2HFtmwMgZ2diprFtm6GOMlLtfgArPHYx9+Nu6aZ5VP4SBmX4217lYyF9Z3tX0zBybPG34B4+lMEuoZ4JFHeeghMTYJdgaUNa63tGp5EIecgDTxNbhrziheGhPPoTiwf6qg/z95f5396SI10oJpYDJ1JYCDHJx4a3dymPID5ZdMAuzP6k1dnQDPlu0smOpS+w1cNEIem056AKgSKkyVADQp5kzgpRMuRpnPmqRg2SnweGbw673G2/PAzFXSCdmtMZ/bWgImcRT1+Qdh5r6JSDtzAIjT/wKqDFh7oCWjnM4VPDZ2MyNtLCNUnFFYVOtJZc2gWNfp2ocS9YPCQkmo5mN4qCsuDD/pYTOD4kEp0Y4rXpgVwKTKiTCHrOZXn5Tywg6wjOLOUl07XYzJOdL4NwmVdop1cg0RXnle9Hcp/dIkmDKW9WDNIcH5cLQWi0HWaFmzwO4JMAAP3oEiUJNMTwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Medium Gray.9ea8eeb0.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAYCAYAAAD3Va0xAAAACXBIWXMAAAsSAAALEgHS3X78AAABP0lEQVQ4jaWVzVHDMBCFXzzcoQOCGgipgKiDdJBcdKcDkgpIrugSKpE7wDSgIR2ECsysWXmEUFaO82Y89sjaz6v986RtW0hS2k7ptXfmS9p3I1J+VfN9Km2qCt6sAdzTpbRdjAYB2ETPu1Egpe2GvQma8VpW2WArbR8BfJyxmXtnmnTxH0hpewegSbyJ9U2B986cSkerBQjplvbwB/Mgpe2BYiFAgmZp8HuQ0vYZwGoAJGiltO1hXYy4RtwFkFjaO1MHjw4jIb3t5GHxJqV6qObk0fJKCGlZapHBSkHHa0BxhZ7tpYJOVTRvSDQ23keA6oobMBzpifvs8wLIkRghRuvoxSvXxpYbtKTOtgNRZQLYJzCqdmobKQF7tv07RnhwvQw80tY70ycnN4+o0qUGpmTs0uEm/o4yA79JB1onAD9P3mlmee4oCQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Refresh - Gray - Selected.eb034c2f.png\";","module.exports = __webpack_public_path__ + \"img/AXIS Logo for Dark Backgrounds - Grayscale.a183b9e7.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAABzCAMAAACilGDfAAAAM1BMVEVMaXEoruQoruQoruQoruQoruQoruQoruQoruQoruQoruQoruQoruQoruQoruQoruQoruRfA0lPAAAAEHRSTlMAMKDAYNBAgPAQ4CCQULBwdJCSQgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAzBJREFUeJzt2tt2gyAQBVAFRPDK/39tVyIMEKw6COID56lJm2YvGAckaV4b9cZUFy7VhcvrXa/pFtWFS3XhUl24VBcu1YVLdeFSXbhUFy7VhUt14VJduFQXLtWFS3XhUl24VBcu1YVLdUWmjGvkvD3+iwKumYjPe4r+6I+edsleKBPyGperUkqxl7h8lVLdK1x8UL95gUsSb6TO3vcpF3emsFvl/P1BlHbJyaoob5pm2X4s7Go7O1YfVTNuD9ayLgZzKLSEbg/Hoi47h4uG8O1h0b4qKQzWbJ4aTocru6uFpkWBQc6HK7erhdKyqzTTwyfLuRjMIQ+o8+Ers7qA1dlSMsW1HL80pwtWHuJMGb0yizldcglLy1r5wSuzuiT0eHeX1e9QH3XBhSjc+jYFd9gicrpg6RHu/YVhdSfFlc1lpsu9EC3rrOZzuewWkLoCtjeED7psxXtlhGJlcNkV0bvdgR573OezueyF6LWodRf7nAtYnTddBMlK7bIs75pDsxK7gOU3TsMS12oruWs0LG+Zgevz2pWYwdXtzVYUK6lrPWR1GFZKlxSHrAuLTx4X2yn5WFZK17YPHFxANCulSwSzGM9K6Qr+1T9NtrQLWAueld4F88j2e/8zLsk5N/sG6tU9nJZEsW65JNN1vXwHaXWKyZ6lxrHuuGbnHHfgtq92jMEZjpriWDdcztGk2pbqVQW5vK9J5iK/hMl0Vhtxdled3hWwPht3e8exTejRwVseF9wgDtSeB0rncPDsc6k8Lm7em7kf+qzORy2C3BisWBdceXpLpTv78P0dm+jSzxEt/r5rgonT0eN3b4huu7TC3RdvrSy6K6Rx6eJ2FYvpYQVdel/qHZD2L3ANP8X1EpceLt9AoFEUcw22J/w+Gb/s3HfNYdE3TVu+T9C94SJ7Tz7qGveqSw9X7F4rhWsKL8Z2EsmnEe3aCLA55iuxH+QlZGFduupbzlk/Ue8LESLlcGFdO9tBk4SLI94lHmJpV38lDKYxDE3YUh3XpdDgHkinm1BHbhlcwTd/BO3npPUe5WodD536md/dLady9evnPCLLAN1xPZhLV+KWxJ3g3zRN8wctj8ZZC2XU9gAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Calendar - Blue - Selected.b154c920.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAACg0lEQVRIib1VTWgTQRR+b3ayyaYkbapikIqSigitIEUQehJ6qSB48STYgwqCtHhT8OK1BVH0pOJBT3oQFNFDQQQVkeIvVpCCEkFrhabm1/ztzDyZTbNm06UNsvWDXYY3M++b9773ZpCI4H+Aa45MVSQm3pcuP8mog0VbJhQAxJgsWEhlAPQcA9F7MKLGgooiq0rMQsbF0a3m9cndXediIaPs7tMRHZnJ37r9g8aaxlQUPn8ciQ1a3KitFux8qZ7M1WSPsydupiuKotuni1+LEuND3TAzPdx1YGMklNXzTP+e/qL9rQ6SEfy5FonGxGz1yuCz2if9zeXrO3vDPNttsryee5uHfSPPS4+XaqLHJRJSJVodGKBkJ7IpRczH7Ob2QwmHRl8UH5VsZTkLq1LGWlcidFYh1C6gz97XeRw+8aZw1SGyVftiCLQU7y/UxxjASq8IoPy3/Dt8iZSWKWDwZcceVJRhdUJzaIv5YEeM0vqgmyJGRtuEIu4jXaOPzHuLZEPINTIgcXKbca03BEscQTCEjqow/Vulbs7DMWhjCkPdnyhoaCK/PlgXcE8egeSZfj612YQMY2gjA7lWqTd6CVeIMpsTAze+0SnXd2vqUpac+zK6YVcQESm7zoyHZUfbFanjQCKotLGQ6SlmD5GBwTeqh6iZ4KCvnlZ3HiLdM8ES/YWHKGggkCvFehO5GXKIwssloWj9GthxHOHcuRAVBEtEgK4/Z2Aa6LzzgoJ7HkjYSIDOzRM1WM4ZHE7i3YtpOjtfN/peLpb39ll8AQwum+XZ0HC15x1bnnWtjOCvsrU9TdN4yrzgXEFVqczxd4VLd77bxwVROKiodCSn+82p8wPxyT+FBANW5oLsAwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Green - Selected.7df54d0f.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAYAAAC16ufeAAAACXBIWXMAAAsSAAALEgHS3X78AAADd0lEQVRYhdVWPXIaMRh9y7gXyQkYcgFmkgNQ2LVoSE1lt3R2SWl3bu1qa6fZrU3BAcLMXiAMJwi7J1DmWz+tZSF2ZZyJ4zfDANL3874/SYkxBi6SvBoB6Nslo9UKHUjyauxKxOhY+P4AbI1W26CsJUulWwAlgIL7AwCyvjBaZQFHCwAzABn1rI6QT41WiwMEhdwcwIS+XHKW/MIPuiZLouJwtieQVwPu3RqtUsfZylkvPZ3aGR1P3H36Sg/pOj7rxBmtZs1GndmsLJCVI/kd+iAr+5Tp83+GrJwdkrcfZOUcWZk6/8XOts2Xp5+6+j1GWhitCj/CJqCn6CXSme1Pm+U2GK1EZ+D0tGRz3ubL8ytZ7Sd5VWf3hH0TMxArEra9HQsbJDg8e73fgRl9pz3KBafPi3LLxh+9ZtpJbkCnrwnS6tcDL9XpcRrHXUpJXtnJ3RuISIxjyx+ABFyTlSxNOMFtsEdUl9whdFavBXWCekxz2lYi2+Asf8GhjAIr8haiDXp4ntptklcFjVuSoySvMg6hPe9SnqGxmFPn2IqAPY8X1y0P4zknHsxIGrgoJICs6/hK8mrOgZTTQBKyOuI0EDt15ffeBpHKzQ0WulJDNxgTIYF3DrNna8AgB0eRdQy5bwPbl2J8EnobMLtbtl2sj4IXyepNZB2DY2axJJngOexU5Daihfr2DdG8Sf4G2dfAIQFmbO+k4Okz94P652QdQmMSGjjPxDH/r/hEfBHIu5F9QeL5AV6EnoyN3P9ANhYnrlySV6cAHp2lDYAbo9U99423d8Hfj0arxLEjcmdGq2WSV5cArrn13Wj1w7MjOKO9X1bGsfPFaCV76HlKQzzdaOL4sxAFcJfk1bkjc8G9texZnQCGSV59JdFv1Nm5dsQPP0sAn7h+7Zmy63tkGxitdsyoEL709wAsW4j62NHeMkbWS06Dg2QdrH1SSV5JtKckfBBGqzVlfrIdYnATyG6NGLI+pPS/AUylv7qEjVbSj1dSnSSvHpwtaS/j9y/7dRMKLoasn0Hbsxu2R938zHbzzYpYAvfUm7p2bM8GfF75rddKVpwyunOWpgF7VghM2Yc7x7h8S3+uaeOU60NvwA6CNjddZG2WjFPqM28wrJElJ37IdphSr9ahjJwGD1w/x/M63DbgQPmBXPG7Wf9Ql8IxA/Zu+DhkAfwBN/o01xtVfHQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAByCAMAAACGCthEAAAAGFBMVEVMaXHCwsLCwsLCwsLCwsLCwsLCwsLCwsLa6ZYIAAAAB3RSTlMAwEDQcDCQQZPY2wAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAJFJREFUeJztzqkBAzEQADGv8/XfcfDBYQukCnTub6HRCrSK5a05S1ytQKvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqvQKrQKrUKr0Cq0Cq1Cq9AqtAqtQqt4tl53ifejtYxWoVXM+cw6M98/jYJMoSiRTlAAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/LaunchExample.4be19420.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Gray.d478bf2e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABEdJREFUeNrsWt1V4kAUHnIsINtBSsBnHwgVLFYgqQCtQKgAqIBYAViB8cFnYgWmg00JO8P5Ru9e5i8hQd3jPeeeRBgm893fbyYK8SM/0osMup7w5eUllpdU6kjqUGoCpVJIraU+q/urq6vyywCRANTiZ1InLX5eSd1JXUtQ1acAAYB7eMEkBa7PuI5wtY3PpS6aAhqcGEIKwK3Bug/Kwr6QkXOo0LuBF2n41fDOvFcgWMAGOUAtryxZtJxzAsPwOa/lnHXnQADiSWpMrKcArDrKtVsA0vMrr2Y+7w5OBFHCYlXHlU+F2ZZ4Rxlr7AIzOBHEOMTtJ+TgEwHjfF7UYNLNuUAowdxjPEsA0NY2PgqclyZh1TcIB5gUOdQ8tBBSe/LRZRed2PCcpbxMSfHILWuosYaqqUeW5H7RE4gp+lGN8N1g8doz6pkL/Kn7V3hooWunxBKrnqJIN8NLVWpxP2FhNkdYK5misgV75Ibcr8+QFxtibVNJX5D7WRMg1CqrHgHk8PgERaUEieTJr8cdeezCQxl0uc193kCJppypAt+qHU0vxfgSYZVgwYUHtMqnROWRzlmXR0bk/jkgWd9IaNzj/g3fmSoUHb9FVUoCuNqjKWJcQCh523kKAm2WVHQFSsn4uYExC1O1svSWwmRsFxD98MoTVjPm9l/QnI9B+M0oO4BWrPn6pODGvnDEu3BUDxPgWgLOyOcZybOUhIKe+05bV45bwKsicIdZEy/+C0RO9mbYWx9Qy++e6CRyAdcsJAShEVRKgIiR3CNLiOwIkEMh8DDqVw1YJzwNrQfLj7RFtb56mpowgBSWQwjKqWrPXMKxvo8cYZ3Tekhg2H7qBSS0QoHcDS1hKCzeay08R+5cVBnfc9mB7AlUHb27iz2nJp1KxFy8IxXhqFLgexO4koVFHMitbGHok6NciwKtbv1cxbdUTfYWRMfMKCUFzEmfIQy9eeHkWmj5OacFNvqu8kLqFgRzpXIIeVQaelFpyhcOytXd0RqGrJ9YG+IdSeLa4SUlv1EKU7Z3WRoq4qOFWU8bJH1qGhs5yuE6kL6v6YJUP5L6hyzufR+DHKPb1j161L2FqtsMd8QBXRRlBdetArjPwpLstWF/nxFvD5mFc0tB4QybU5VOD7H18edQfJy0G+k/FjQl1j0cs/qYL/rUhoDOOgfStwD8npTuMQUeie8jtwREwb0XfRNvDH0FIfomIbWhlMiUS1HLyadnxMIPs7NWJ42OyqHKZNbzIfaSNcuxrbI1fa2Q4NCAdtZzvFYQMFoexH59ggVnjOjtuww1zLVvAqJ1H8HDloyFHjr8ia/eZqzT19jb577fn/Iy1PQe8f1gDp3a9zI0JaQzMewYs9BD8y5eT89hydhzdFOxnWPqOCFp9Ea3M4qC5JyhwsQtp9GMe9WmEvbxLxxTbEXTgNOQCh57dLHeTwHi2M2J0F3gj/wP8leAAQAyZvVMTd5OpAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAADI0lEQVRYhc1Z7ZHaMBB9uuG/6cCkgrsOcCowqSBcBUkHcQmkgpAOrApiKojTAXRgVaCMPE+M7POHZHEHb8YDZ61Xj/Vq90kntNZYCiHVC4ANgAyA+b41rnSeiMVOJ7CKfP5viLGQagfgAKDQeXIMnewp9IEeZKC9IZsC+CWkOgup9iEPx5ItASgAPwF8dq4pshbBpCdzVki1BlABqHWeBEVhxJ/J7TVJf3WGfvv4HyUrpNowcs8hDgOIW//egRhcYFzlJqLJrcj1ofPkzArijTc5O0L0plFdik4aMEdrJv9DEcVINaic73chaqrDUJUYXGBCqrZg3yuiQqqGaXjRebK53o9pt+8FIVUB4Afdv9puF9sU3gsHNhuDws7xkGR1njSswQapzd1YIXMFHe6t8iJOAI5LRAvJ2i5nontccZIDB0udJ+WMkz7JFz6bDgwb4lvm4E7nSR3gumEqlDbKAmVTOdFQOk/WgURtA7kwApXpTmynGe+lnDgLJNzBqtfyQl9XSaL/SKSxA2ynRyFVyR/0TPvNtMtxPPXaauX7INMnZUQ7RF3wfka7NFTDuuhXg8EJR2AnLcaIWnDclqCbkQ2BzXPft2HttjN2o4guXcxNLzshlYdlF0Kqa4tdxe5Ezar3IczqEOo7c/+OSYMTP7MZOwtrd5o3HUYMWVvmCurgUXC86D33cWTZQi8sX9UYYWfTmVLyhZB1d8PRQmbHzmQKfk3R3Oam+WRNrTmu+pNPgT/SLXOnVs/ypOR66TwJaQ5T2sDiEqoNSDZzeH23ZBunk30JFTN4H9X1dg6SdZX5w2wQ+7BkTcjPTnQ/+Rb7j0S7wHq9G45KfzyyxNHZ9yzWnDEwb1hIVdnddR/9Qw4T3c2dzgrWju7F0NrpCBmdJwXuABJ1DwEHcbMN41IMRHQwqrj3VjyEKELImqQXUtVLpN4M3MU8WeO9jo+4Ojsn1cyxJqQ1z/ifPVvzJbt3ttQdDIl3vl5317xjK94vaeUWXmlgejtP814pSiym/lvzx7m+sTt6q67FZCdID0ZpYrcbRXZR6aKKClVSrQJbMl8LAP8BiJt6QmUxwNkAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Delete - Medium Gray - Selected.ede0cb02.png\";","export const USER_DESIG = {\r\n Admin: 0,\r\n AttdMD: 1,\r\n RefMD: 2,\r\n Photographer: 3,\r\n User: 4,\r\n ReadOnly: 5,\r\n ADUser: 6,\r\n RCSiteUser: 7,\r\n Invalid: 8,\r\n Device: 9,\r\n Reviewer: 10,\r\n ViewOnly: 11\r\n}\r\n\r\nexport const PATIENT_TIMESPAN = {\r\n today: \"Today's Patients\",\r\n thisWeek: \"This Week's Patients\",\r\n thisMonth: \"This Month's Patients\",\r\n thisYear: \"This Year's Patients\",\r\n all: \"All Patients\"\r\n}\r\n\r\nexport const PATIENT_TIMESPANS = [\r\n PATIENT_TIMESPAN.today,\r\n PATIENT_TIMESPAN.thisWeek,\r\n PATIENT_TIMESPAN.thisMonth,\r\n PATIENT_TIMESPAN.thisYear,\r\n PATIENT_TIMESPAN.all\r\n]\r\n\r\nexport const CHNG_PSWD = [\r\n { value: false, text: \"False\" },\r\n { value: true, text: \"True\" }\r\n]\r\n\r\nexport const CHNG_PSWD_NXT_LOGIN = [\r\n { value: false, text: \"False\" },\r\n { value: true, text: \"True\" }\r\n]\r\n\r\nexport const USER_STATUS = [\r\n { value: true, text: \"Active\" },\r\n { value: false, text: \"Inactive\" }\r\n]\r\n\r\nexport const USER_DESIGN_ADD = [\r\n {value: \"Admin\", text: \"Admin\"},\r\n {value: \"AttdMD\", text: \"Attending Physician\"},\r\n {value: \"RefMD\", text: \"Referring Physician\"},\r\n {value: \"Photographer\", text: \"Photographer\"},\r\n {value: \"User\", text: \"User\"},\r\n {value: \"ReadOnly\", text: \"ReadOnly\"},\r\n {value: \"RCSiteUser\", text: \"RCSiteUser\"},\r\n {value: \"ViewOnly\", text: \"ViewOnly\"},\r\n]\r\n\r\nexport const PHYSICIAN_LEVEL = [\r\n {value: \"ATTDMD\", text: \"Attending Physician\"},\r\n {value: \"REFMD\", text: \"Referring Physician\"}\r\n]\r\n\r\nexport const ISSELECTED = [\r\n {value: 1, text: \"Active\"},\r\n {value: 0, text: \"Inactive\"}\r\n]\r\n\r\nexport const SEARCH_BY = {\r\n Keyword: 0,\r\n Advanced: 1,\r\n User: 2,\r\n Date: 3,\r\n DateIntervals: 4,\r\n EMRLink: 5,\r\n All: 6\r\n}\r\n\r\nexport const GENDERS = [\r\n { value: \"M\", text: \"Male\" },\r\n { value: \"F\", text: \"Female\" },\r\n { value: \"U\", text: \"Unknown\" }\r\n]\r\n\r\nexport const PAGE_SIZE = [\r\n { value: null, text: \"Default\"},\r\n { value: 25, text: \"25\" },\r\n { value: 50, text: \"50\" },\r\n { value: 100, text: \"100\" }\r\n]\r\n\r\nexport const PATIENT_DATE_SETTING = [\r\n { value: \"day\", text: \"Today's Patients\" },\r\n { value: \"week\", text: \"This Week's Patients\" },\r\n { value: \"month\", text: \"This Month's Patients\" },\r\n { value: \"year\", text: \"This Year's Patients\" },\r\n { value: \"all\", text: \"All Patients\" }\r\n]\r\n\r\nexport const PATIENT_DATE_SETTING_USERPREF = [\r\n { value: null, text: \"Default\"},\r\n { value: \"day\", text: \"Today's Patients\" },\r\n { value: \"week\", text: \"This Week's Patients\" },\r\n { value: \"month\", text: \"This Month's Patients\" },\r\n { value: \"year\", text: \"This Year's Patients\" },\r\n { value: \"all\", text: \"All Patients\" }\r\n]\r\n\r\nexport const AUTO_REFRESH = [\r\n { value: null, text: \"Default\"},\r\n { value: 1, text: \"ON\" },\r\n { value: 0, text: \"OFF\" }\r\n]\r\n\r\nexport const FULL_SCREEN = [\r\n { value: null, text: \"Default\"},\r\n { value: 1, text: \"ON\" },\r\n { value: 0, text: \"OFF\" }\r\n]\r\n\r\nexport const DEFAULT_HVF_ORDER = [\r\n { value: null, text: \"Default\"},\r\n {value: 1, text: \"OD | OS\"},\r\n {value: 2, text: \"OS | OD\"},\r\n]\r\n\r\nexport const DEFAULT_CIRRUS_VIEW = [\r\n { value: null, text: \"Default\"},\r\n {value: 3, text: \"Black/White\"},\r\n {value: 4, text: \"Color\"},\r\n]\r\n\r\nexport const EXAM_LOCATION = [\r\n { value: \"C:/Desktop\", text: \"C:/Desktop\" },\r\n { text: \"Browse\" }\r\n]\r\n\r\nexport const EYES = [\r\n { value: \"OD\", text: \"OD\" },\r\n { value: \"OS\", text: \"OS\" },\r\n { value: \"OU\", text: \"OU\" },\r\n { value: \"U\", text: \"U\" },\r\n]\r\n\r\nexport const EyeTypes = {\r\n OD: \"OD\",\r\n OS: \"OS\",\r\n OU: \"OU\",\r\n U: \"U\"\r\n}\r\n\r\nexport const PATIENT_STATUS = [\r\n { value: \"1\", text: \"Validated\", icon: \"fas fa-check\", tooltip: \"\" },\r\n { value: \"0\", text: \"Locked\", icon: \"fas fa-lock\", tooltip: \"\" },\r\n { value: \"2\", text: \"Flag\", icon: \"fas fa-exclamation-triangle\", tooltip: \"\" },\r\n { value: \"4\", text: \"Normal\", icon: \"\", tooltip: \"\" }\r\n]\r\n\r\nexport const PLAY_RATES = [\r\n { value: \"0.1\", text: \"0.1 sec\" },\r\n { value: \"0.2\", text: \"0.2 sec\" },\r\n { value: \"0.3\", text: \"0.3 sec\" },\r\n { value: \"0.4\", text: \"0.4 sec\" },\r\n { value: \"0.5\", text: \"0.5 sec\" },\r\n { value: \"1\", text: \"1 sec\" },\r\n { value: \"3\", text: \"3 sec\" },\r\n { value: \"5\", text: \"5 sec\" },\r\n { value: \"10\", text: \"10 sec\" },\r\n]\r\n\r\nexport const ANNOTATION_COLORS = {\r\n White: \"#fff\",\r\n LightGray: \"#D9D9D9\",\r\n Black: \"#000000\",\r\n DarkGray: \"#595959\",\r\n Brown: \"#993300\",\r\n LightBrown: \"#DAAA94\",\r\n Red: \"#ff0d00\",\r\n LightRed: \"#FF9999\",\r\n Orange: \"#FF6600\",\r\n LightOrange: \"#FFB38A\",\r\n Yellow: \"#ffff00\",\r\n LightYellow: \"#ffff99\",\r\n Green: \"#1b992e\",\r\n LightGreen: \"#A9D18E\",\r\n Blue: \"#3800ff\",\r\n LightBlue: \"#BDD7EE\",\r\n Purple: \"#7030A0\",\r\n LightPurple: \"#C198E0\"\r\n}\r\n\r\nexport const ANNOTATION_MODES = {\r\n // annotation selection modes (none behaves like select)\r\n None: 0,\r\n Select: 1,\r\n Delete: 2,\r\n\r\n // canvas manipulation modes\r\n Magnify: 3,\r\n\r\n // non-measurement annotations\r\n Arrow: 5,\r\n Text: 6,\r\n Redact: 7,\r\n FreeHandLine: 8,\r\n ContinuousDraw: 23,\r\n Angle: 9,\r\n Outline: 26,\r\n\r\n // measurement annotations\r\n LengthLine: 10,\r\n Area: 11,\r\n CupToDisc: 12,\r\n FreeHandArea: 13,\r\n CountingGrid: 14,\r\n PDT: 15,\r\n ETDRSGrid: 16,\r\n StandardCircles1: 17, // C0, C1, C2\r\n StandardCircles2: 18, // C3, C4\r\n DrusenCircles1: 19, // C-0, C-1, C-2\r\n DrusenCircles2: 20, // I-2, O-2\r\n DrusenCircles3: 21, // DA / 2\r\n DrusenCircles4: 22, // DA\r\n Rectangle: 24,\r\n\r\n // DeepDee annotation\r\n DeepDeeInfo: 25,\r\n\r\n // Color fill mode\r\n ShapeFill: 27\r\n}\r\n\r\nexport function addMode(mode) {\r\n return mode > ANNOTATION_MODES.Magnify && mode != ANNOTATION_MODES.ShapeFill;\r\n}\r\n\r\nexport function editMode(mode) {\r\n return mode < ANNOTATION_MODES.Magnify\r\n}\r\n\r\nexport function deleteMode(mode) {\r\n return mode == ANNOTATION_MODES.Delete;\r\n}\r\n\r\nexport function magnifyMode(mode) {\r\n return mode == ANNOTATION_MODES.Magnify;\r\n}\r\n\r\nexport function shapeFillMode(mode) {\r\n return mode == ANNOTATION_MODES.ShapeFill;\r\n}\r\n\r\nexport const POINTER_CLASSES = {\r\n pointer: \"annotation-hover-pointer\",\r\n text: \"annotation-hover-text\",\r\n neswResize: \"annotation-hover-nesw-resize\",\r\n nwseResize: \"annotation-hover-nwse-resize\",\r\n nsResize: \"annotation-hover-ns-resize\",\r\n ewResize: \"annotation-hover-ew-resize\"\r\n}\r\n\r\nexport const GRAYSCALE_MODES = {\r\n None: \"\",\r\n REC709: \"REC709\",\r\n Red: \"Red\",\r\n Green: \"Green\",\r\n Blue: \"Blue\",\r\n}\r\n\r\nexport const Manufacturers = {\r\n Unknown: \"\",\r\n Zeiss: \"zeiss\",\r\n Heidelberg: \"heidelberg\",\r\n Optovue: \"optovue\"\r\n}\r\n\r\nexport const ScanTypes = {\r\n Unknown: \"\",\r\n Volume: \"volume\",\r\n Circle: \"circle\",\r\n Star: \"star\",\r\n Raster: \"raster\",\r\n Section: \"section\",\r\n RadialCircle: \"radial circles\"\r\n}\r\n\r\nexport const SeriesTypes = {\r\n Unknown: \"\",\r\n Macula: \"macula\",\r\n OpticDisc: \"opticDisc\",\r\n AnteriorSegment: \"anteriorSegment\"\r\n}\r\n\r\nexport const ImageFormats = {\r\n Color: 0,\r\n Grayscale: 1,\r\n Grayscale16: 2\r\n}\r\n\r\nexport const SliceLayerTypes = {\r\n Ilm: 0,\r\n Rnfl: 1,\r\n Ipl: 2,\r\n Opl: 3,\r\n Rpe: 4,\r\n RpeFit: 5,\r\n Bm: 6,\r\n}\r\n\r\nexport const EyeMarkers = {\r\n None: 0,\r\n SI: 1,\r\n IS: 2,\r\n TN: 3,\r\n NT: 4\r\n}\r\n\r\nexport const OCTBrowserType = {\r\n Unknown: 0,\r\n Spectralis: 1,\r\n Cirrus: 2,\r\n Raster: 3\r\n}\r\n\r\nexport const AdminPanelTabs = {\r\n DashBoard: 1,\r\n Reports: 2\r\n}\r\n\r\nexport const ReportTypes = {\r\n User: 1,\r\n Exam: 2,\r\n Device: 3\r\n}\r\n\r\nexport const GROUP_BY = {\r\n none: 0,\r\n exDateTime: 1,\r\n exDevProc: 2,\r\n phySrNo: 3,\r\n exDictated: 4,\r\n exIsStudy: 5,\r\n pathNote: 6,\r\n devType: 7,\r\n devLocation: 8\r\n}\r\n\r\nexport const UserActivities = [\r\n { value: 0, text: \"User Login\"},\r\n { value: 1, text: \"User Logout\" }, \r\n { value: 2, text: \"User Password Change\" },\r\n { value: 4, text: \"Patient View\" },\r\n { value: 5, text: \"Patient Add\" },\r\n { value: 6, text: \"Patient Edit\" },\r\n { value: 7, text: \"Patient Remove\" },\r\n { value: 8, text: \"Patient Lock\" },\r\n { value: 9, text: \"Patient Merge\" },\r\n { value: 10, text: \"Exam View\" },\r\n { value: 11, text: \"Exam Add\" },\r\n { value: 12, text: \"Exam Edit\" },\r\n { value: 13, text: \"Exam Remove\" },\r\n { value: 14, text: \"Exam Lock\" },\r\n { value: 15, text: \"Exam Merge\" },\r\n { value: 16, text: \"Exam Zipped\" },\r\n { value: 17, text: \"Image Add\" },\r\n { value: 18, text: \"Image View\" },\r\n { value: 19, text: \"Image Annotate\" },\r\n { value: 20, text: \"Image Annotate As New\" },\r\n { value: 21, text: \"Image Remove\" },\r\n { value: 22, text: \"Image Download\" },\r\n { value: 23, text: \"Image Moved\" },\r\n { value: 24, text: \"Image Edited\" },\r\n]\r\n\r\nexport const BoolAndEither = [\r\n { value: null, text: \"Either\"},\r\n { value: true, text: \"Yes\" }, \r\n { value: false, text: \"No\" }\r\n]\r\n\r\nexport const Directions = {\r\n Unknown: 0,\r\n Vertical: 1,\r\n Horizontal: 2\r\n}\r\n\r\nexport const DEFAULT_PATIENT_LISTING = [\r\n { value: 1, text: \"Today\" },\r\n { value: 2, text: \"Week\" },\r\n { value: 3, text: \"Month\" },\r\n { value: 4, text: \"Year\" },\r\n { value: 5, text: \"All\" }\r\n]\r\n\r\nexport const DEFAULT_HVF = [\r\n {value: false, text: \"OD | OS\"},\r\n {value: true, text: \"OS | OD\"},\r\n]\r\n\r\nexport const DEFAULT_MACULAR_CUBE_SCAN_RATIO = [\r\n {value: \"original\", text: \"Original\"},\r\n {value: \"stretch\", text: \"Stretch\"},\r\n]\r\n\r\nexport const DEFAULT_MACULAR_CUBE_SCAN_RATIO_USER_PREF = [\r\n {value: \"default\", text: \"Default\"},\r\n {value: \"original\", text: \"Original\"},\r\n {value: \"stretch\", text: \"Stretch\"},\r\n]\r\n\r\n\r\nexport const TRUE_OR_FALSE = [\r\n {value: true, text: \"True\"},\r\n {value: false, text: \"False\"}\r\n]\r\n\r\nexport const ENABLE_OR_DISABLE = [\r\n {value: true, text: \"Enable\"},\r\n {value: false, text: \"Disable\"}\r\n]\r\nexport const SELECT_ALL = \"Select/Deselect All\";\r\n\r\nexport const TEXT_SIZES = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];\r\n\r\nexport const THUMBNAIL_DROPDOWN = {\r\n currentPrevious: 1,\r\n currentBaseline: 2\r\n}\r\n\r\nexport const PRELOAD_OPTIONS = {\r\n preLoadAll: \"PreLoadAll\",\r\n preLoadNone: \"PreLoadNone\",\r\n preLoad2Steps: \"PreLoad2Steps\"\r\n}\r\n\r\nexport const SINGLE_OR_MULTI = [\r\n {value: \"singleView\", text: \"Single View\"},\r\n {value: \"multiView\", text: \"Multi View\"}\r\n]\r\n\r\nexport const SINGLE_OR_MULTI_USERPREF = [\r\n {value: null, text: \"Default\"},\r\n {value: \"singleView\", text: \"Single View\"},\r\n {value: \"multiView\", text: \"Multi View\"}\r\n]\r\n\r\nexport const MULTIVIEW_COLLAPSE_BY_DEFAULT = [\r\n { value: null, text: \"Default\"},\r\n { value: 1, text: \"Yes\" },\r\n { value: 0, text: \"No\" }\r\n]\r\n\r\nexport const EYES_ORDER_TYPE = {\r\n OD_OS: 1,\r\n OS_OD: 2\r\n}\r\n\r\nexport const DEFAULT_VIEW_TYPE = {\r\n singleView: \"singleView\",\r\n multiView: \"multiView\"\r\n}\r\n\r\nexport const COLOR_TYPE = {\r\n darkblue: 1,\r\n white: 2,\r\n blackWhite: 3,\r\n color: 4,\r\n gray: 5,\r\n green: 6\r\n}\r\n\r\nexport const THUMBNAIL_ANNOTATION_TYPE = {\r\n spectralisCircle: 1,\r\n spectralisVolume: 2,\r\n spectralisRadial: 3,\r\n spectralisRadialSCN: 4,\r\n cirrusReferenceMacular: 5,\r\n cirrusReferenceRaster: 6,\r\n spectralisSection: 7,\r\n spectralisRadialCircle: 8,\r\n cirrusReferenceOpticDisc: 9\r\n}\r\n\r\nexport const VALID_IMG_TYPES = [\r\n \"IMAGE\",\r\n \"IMAGE-SLO\",\r\n \"IMAGE-MNTG\",\r\n \"IMAGE-SCN\",\r\n \"DICOM-ZEISS\",\r\n \"DICOM-OPTOS\",\r\n \"DICOM-PRESENTATION\",\r\n \"DICOM-UNKNOWN\"\r\n]\r\n\r\nexport const DEEP_DEE_COLORS = \r\n [\"#563dfc\", \r\n \"#9e99c2\",\r\n \"#84d4db\", \r\n \"#e7ff0f\", \r\n \"#ffa640\", \r\n \"#cc6d00\",\r\n \"#ff0800\" \r\n];\r\n\r\nexport const SHOW_BACKGROUND_BOX = \r\n [\r\n { value: true, text: \"Yes\" },\r\n { value: false, text: \"No\" }\r\n];\r\n\r\nexport const DEV_CONFIG_TYPES = \r\n[\r\n {value: 1, text: \"Reorder\"},\r\n {value: 2, text: \"Calibration\"},\r\n {value: 3, text: \"Montage/OverLay\"} \r\n];\r\n\r\nexport const DEV_CONFIG_XML_VALUES = \r\n[\r\n {value: 1, text: \"REORDER\"},\r\n {value: 2, text: \"magVal\"},\r\n {value: 3, text: \"I2K\"} \r\n];\r\n\r\nexport const DEVICE_HISTORY_SORTBY = \r\n{\r\n None: 0,\r\n Username: 1,\r\n TmStamp: 2,\r\n OldValues: 3,\r\n NewValues: 4\r\n};\r\n\r\nexport const DEVICE_HISTORY_EDITABLE_FIELDS = \r\n[\r\n \"devtype\",\r\n \"devname\",\r\n \"devproc\",\r\n \"devdescrition\",\r\n \"isactive\",\r\n \"ignorerotation\",\r\n \"orderbylaterality\",\r\n \"defaultzoomfactor\",\r\n \"devconfig\"\r\n];","module.exports = __webpack_public_path__ + \"img/Microphone - Pink - Selected.e1794fed.png\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Green - Selected.c49f550b.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - Green - Selected.7df54d0f.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - Dark Gray.541a2765.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{class:_vm.responsivePageStyle,attrs:{\"dark\":\"\",\"id\":\"loginPage\"}},[_c('div',[_c('img',{staticStyle:{\"width\":\"75%\"},attrs:{\"id\":\"sonomed\",\"alt\":\"Sonomed Escalon\",\"src\":require(\"../assets/Sonomed Escalon Logo for Dark Backgrounds.png\")}})]),_c('h1',[_vm._v(_vm._s(_vm.axisTitle))]),_c('hr',{staticClass:\"escalonBlue\"}),_c('div',{staticClass:\"my-4\"},[_c('img',{style:(_vm.imgStyle),attrs:{\"id\":\"axis-logo\",\"alt\":\"Axis Logo\",\"src\":require(\"../assets/AXIS Logo for Dark Backgrounds - Grayscale.png\")}})]),(_vm.hasAdditionalLoginImage)?_c('div',{staticClass:\"my-4\"},[_c('img',{style:(_vm.additionalImgStyle),attrs:{\"id\":\"additional-image\",\"alt\":\"Additional Image\",\"src\":_vm.additionalLoginImage}})]):_vm._e(),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-form',{staticClass:\"escalonLoginform\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|max:200'),expression:\"'required|max:200'\"}],attrs:{\"id\":\"username\",\"data-vv-as\":\"User ID\",\"name\":\"username\",\"placeholder\":\"User ID\",\"hide-details\":\"auto\",\"solo\":\"\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('span',{staticClass:\"fieldErrorMsg\"},[_vm._v(_vm._s(_vm.errors.first('username')))]),_c('v-text-field',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"id\":\"password\",\"data-vv-as\":\"Password\",\"name\":\"password\",\"placeholder\":\"Password\",\"append-icon\":_vm.showPassword ? 'fa-eye' : 'fa-eye-slash',\"type\":_vm.showPassword ? 'text' : 'password',\"hide-details\":\"auto\",\"solo\":\"\"},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('span',{staticClass:\"fieldErrorMsg\"},[_vm._v(_vm._s(_vm.errors.first('password')))]),_c('div',{staticClass:\"mb-3\"},[_c('button',{staticClass:\"btn primary-cta\",attrs:{\"disabled\":_vm.submitDisabled}},[_vm._v(\"Login\")])]),_c('div',{staticClass:\"mb-3\"},[_c('span',{staticClass:\"validation-message\"},[_vm._v(_vm._s(_vm.loginErrorMsg))])])],1)],1)],1),_c('hr',{staticClass:\"escalonBlue\"}),_c('v-row',{staticStyle:{\"padding-top\":\"6px\"},attrs:{\"no-gutters\":\"\"}},[(!_vm.isOpenedInApp)?_c('v-col',{staticClass:\"text-sm-right\",attrs:{\"no-gutters\":\"\",\"cols\":\"12\",\"sm\":\"12\"}},[_c('img',{staticClass:\"app-store\",attrs:{\"alt\":\"App Store\",\"src\":require(\"../assets/appStoreDark.png\")},on:{\"click\":_vm.openItunesStore}})]):_vm._e()],1),(!_vm.isOpenedInApp)?_c('v-row',{attrs:{\"no-gutters\":\"\"}}):_vm._e(),_c('token-modal',{attrs:{\"isOpen\":_vm.is2faOpen},on:{\"submit\":_vm.submit2faModal,\"close\":_vm.close2faModal}})],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-dialog',{attrs:{\"value\":_vm.isOpen,\"persistent\":\"\",\"scrollable\":\"\"}},[_c('v-card',[_c('v-toolbar',{staticClass:\"escalon-dialog-header\",attrs:{\"height\":\"35\"}},[_c('img',{staticClass:\"modal-axis-logo mr-2\",attrs:{\"src\":require(\"../../assets/AXIS Logo for Dark Backgrounds - Cropped - Grayscale.png\")}}),_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Google Authenticator Code\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('v-avatar',{staticClass:\"mr-2\",attrs:{\"size\":\"20\"}},[_c('img',{attrs:{\"src\":require('../../assets/' + _vm.coloredAssetUrls.close)}})]),_vm._v(\"Close\\n \")],1)],1),_c('v-card-text',{staticStyle:{\"height\":\"90%\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('div',[_c('label',{staticClass:\"modal-label\"},[_vm._v(\"Google Authenticator Code*\")])]),_c('v-text-field',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"solo\":\"\",\"id\":\"g\",\"name\":\"g\"},model:{value:(_vm.GACode),callback:function ($$v) {_vm.GACode=$$v},expression:\"GACode\"}})],1)],1),_c('v-card-actions',[_c('v-btn',{staticClass:\"modal-cta\",attrs:{\"text\":\"\"},on:{\"click\":_vm.submit}},[_vm._v(\"Submit\\n \"),_c('v-avatar',{staticClass:\"ml-2\",attrs:{\"size\":\"20\"}},[_c('img',{attrs:{\"src\":require('../../assets/' + _vm.coloredAssetUrls.submit)}})])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenModal.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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TokenModal.vue?vue&type=template&id=b92116de&scoped=true&\"\nimport script from \"./TokenModal.vue?vue&type=script&lang=js&\"\nexport * from \"./TokenModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TokenModal.vue?vue&type=style&index=0&id=b92116de&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 \"b92116de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAvatar,VBtn,VCard,VCardActions,VCardText,VContainer,VDialog,VSpacer,VTextField,VToolbar})\n","\r\n\r\n\r\n\r\n\r\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/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPage.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/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoginPage.vue?vue&type=template&id=24c84049&scoped=true&\"\nimport script from \"./LoginPage.vue?vue&type=script&lang=js&\"\nexport * from \"./LoginPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoginPage.vue?vue&type=style&index=0&id=24c84049&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 \"24c84049\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VContainer,VForm,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SSOBody')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { mapMutations } from \"vuex\";\r\nimport moment from \"moment\";\r\n\r\nexport default {\r\n data() {\r\n return {\r\n searchParams: this.$route.query,\r\n modMedKeys: [\r\n { mmKey: \"mrn\", newKey: \"ptid\" },\r\n { mmKey: \"fn\", newKey: \"ptfname\" },\r\n { mmKey: \"ln\", newKey: \"ptlname\" },\r\n { mmKey: \"dob\", newKey: \"ptdob\" }]\r\n };\r\n },\r\n methods: {\r\n ...mapMutations([\"setDelayedStatus\", \"ssoSearch\"]),\r\n startupTask() {\r\n return Promise.resolve();\r\n },\r\n doSSOSearch() {\r\n // map all input keys to lower case\r\n let params = {};\r\n let keys = Object.keys(this.searchParams);\r\n let key;\r\n for (let i = 0; i < keys.length; i++){\r\n key = keys[i];\r\n if (this.searchParams[key])\r\n params[key.toLowerCase()] = decodeURIComponent(this.searchParams[key]);\r\n }\r\n this.ssoSearch(params);\r\n return Promise.resolve();\r\n },\r\n complainOnFailure() {\r\n this.setDelayedStatus({\r\n message:\r\n \"Unfortunately we could not complete your SSO request. Please try again later.\",\r\n level: \"error\"\r\n });\r\n return Promise.reject();\r\n },\r\n continue() {\r\n this.$router.push(\"/\");\r\n },\r\n mapModmedKeys() {\r\n this.modMedKeys.forEach(({mmKey, newKey}) => {\r\n if (this.searchParams.hasOwnProperty(mmKey))\r\n this.searchParams[newKey] = this.searchParams[mmKey];\r\n });\r\n return Promise.resolve();\r\n },\r\n cleanupModmedDates() {\r\n if (!this.searchParams) return Promise.resolve();\r\n if (!this.searchParams.hasOwnProperty(\"ptdob\")) return Promise.resolve();\r\n\r\n let dob = this.searchParams.ptdob;\r\n let dobMoment = moment(dob, [\"YYYY-MM-DD\", \"MM-DD-YYYY\", \"MM/DD/YYYY\"]);\r\n if (dobMoment.isValid())\r\n this.searchParams.ptdob = dobMoment.format(\"YYYY-MM-DD\");\r\n\r\n return Promise.resolve();\r\n }\r\n },\r\n created() {\r\n return this.startupTask()\r\n .then(this.mapModmedKeys)\r\n .then(this.cleanupModmedDates)\r\n .then(this.doSSOSearch)\r\n .catch(this.complainOnFailure)\r\n .finally(this.continue);\r\n }\r\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center sso-body\"},[_c('h1',{staticClass:\"my-12\"},[_vm._v(\"Processing single-sign-on request\")]),_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}}),_vm._m(0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-12\"},[_c('img',{staticClass:\"axis-logo\",attrs:{\"src\":require(\"../../assets/AXIS Logo for Dark Backgrounds - Grayscale.png\")}})])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SSOBody.vue?vue&type=template&id=040a219a&scoped=true&\"\nvar script = {}\nimport style0 from \"./SSOBody.vue?vue&type=style&index=0&id=040a219a&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 \"040a219a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VProgressCircular})\n","\r\n\r\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/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SSO.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/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SSO.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SSO.vue?vue&type=template&id=0eb0efbe&\"\nimport script from \"./SSO.vue?vue&type=script&lang=js&\"\nexport * from \"./SSO.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('SSOBody')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\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/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValidateJWT.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/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValidateJWT.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ValidateJWT.vue?vue&type=template&id=110fa9d5&\"\nimport script from \"./ValidateJWT.vue?vue&type=script&lang=js&\"\nexport * from \"./ValidateJWT.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 LoginPage from \"../views/LoginPage.vue\";\r\nimport SSO from \"../views/SSO.vue\";\r\nimport ValidateJWT from \"../views/ValidateJWT.vue\";\r\nimport store from \"../store\";\r\nimport { logDetailed } from \"../helpers/utils\";\r\nexport default [\r\n {\r\n path: \"/\",\r\n beforeEnter: (to, from, next) => {\r\n if (store.getters.isAuthenticated) next(\"/patients\");\r\n else next(\"/login\");\r\n },\r\n },\r\n {\r\n path: \"/unsupportedDevice\",\r\n name: \"unsupportedDevice\",\r\n meta: {\r\n title: \"Unsupported Device\"\r\n },\r\n component: () => import(\"../views/UnsupportedDevice.vue\"),\r\n beforeEnter(to, from, next) {\r\n logDetailed(\"routes\", \"/unsupportedDevice\", \"entering unsupported device page\");\r\n if (store.getters.belowMobileCutoff) next();\r\n else next(\"/\");\r\n }\r\n },\r\n {\r\n path: \"/unsupportedBrowser\",\r\n name: \"unsupportedBrowser\",\r\n meta: {\r\n title: \"Unsupported Browser\"\r\n },\r\n component: () => import(\"../views/UnsupportedBrowser.vue\"),\r\n beforeEnter(to, from, next) {\r\n logDetailed(\"routes\", \"/unsupportedBrowser\", \"entering unsupported browser page\");\r\n next();\r\n }\r\n },\r\n {\r\n path: \"/login\",\r\n name: \"login\",\r\n meta: {\r\n title: \"Login\",\r\n guest: true,\r\n },\r\n component: LoginPage,\r\n beforeEnter(to, from, next) {\r\n logDetailed(\"routes\", \"/login\", \"entering login page\");\r\n if (store.getters.isAuthenticated) next(\"/patients\");\r\n else next();\r\n }\r\n },\r\n {\r\n path: \"/sso\",\r\n name: \"sso\",\r\n meta: {\r\n title: \"Logging in\"\r\n },\r\n component: SSO,\r\n beforeEnter(to, from, next) {\r\n logDetailed(\"routes\", \"/sso\", \"entering sso page\");\r\n next();\r\n }\r\n },\r\n {\r\n path: \"/validateJWT\",\r\n name: \"validateJWT\",\r\n meta: {\r\n title: \"Logging in\"\r\n },\r\n component: ValidateJWT,\r\n beforeEnter(to, from, next) {\r\n logDetailed(\"routes\", \"/validateJWT\", \"entering validateJWT page\");\r\n next();\r\n }\r\n },\r\n {\r\n path: \"/patients\",\r\n name: \"patients\",\r\n meta: {\r\n title: \"Patients\",\r\n requiresAuth: true,\r\n },\r\n component: () => import(\"../views/PatientListPage.vue\"),\r\n beforeEnter(to, from, next) {\r\n logDetailed(\"routes\", \"/patients\", \"entering patients page\");\r\n if (from.path == \"/imageBrowserTest\") next();\r\n else store.dispatch(\"ensureStaticListsLoaded\", false).then(next);\r\n },\r\n },\r\n {\r\n path: \"/qrcode\",\r\n name: \"qrcode\",\r\n meta: {\r\n title: \"qrcode\",\r\n requiresAuth: false\r\n },\r\n component: () => import(\"../views/QRPage.vue\"),\r\n },\r\n {\r\n path: \"/imageBrowserTest\",\r\n name: \"imageBrowserTest\",\r\n meta: {\r\n title: \"ImageBrowserTest\",\r\n requiresAuth: true,\r\n },\r\n beforeEnter: (to, from, next) => {\r\n if (store.getters.exam) next();\r\n else next(\"/patients\");\r\n },\r\n component: () => import(\"../views/ImageBrowserTest.vue\")\r\n },\r\n {\r\n path: \"/adminpanel\",\r\n name: \"adminpanel\",\r\n meta: {\r\n title: \"AdminPanel\",\r\n requiresAuth: true\r\n },\r\n component: () => import(\"../views/AdminPanelPage.vue\"),\r\n beforeEnter(to, from, next) {\r\n if (!store.getters.userIsAdmin) next(\"/patients\");\r\n logDetailed(\"routes\", \"/adminpanel\", \"entering adminpanel page\");\r\n store.dispatch(\"ensureStaticListsLoaded\", true).then(next);\r\n }\r\n },\r\n {\r\n path: \"/printImages\",\r\n name: \"printImages\",\r\n meta: {\r\n title: \"PrintImages\"\r\n },\r\n component: () => import(\"../views/PrintImages.vue\")\r\n },\r\n {\r\n path: \"/Default.aspx\",\r\n beforeEnter(to, from, next) {\r\n next({ name: \"sso\", query: to.query });\r\n }\r\n },\r\n {\r\n path: \"/emrstat\",\r\n name: \"emrstat\",\r\n meta: {\r\n title: \"EMR Stats\"\r\n },\r\n component: () => import(\"../views/Emrstat.vue\"),\r\n beforeEnter(to, from, next) {\r\n logDetailed(\"routes\", \"/emrstat\", \"entering emrstat page\");\r\n next();\r\n }\r\n },\r\n {\r\n path: \"*\",\r\n beforeEnter(to, from, next) {\r\n next(\"/\");\r\n }\r\n }\r\n];\r\n","import Vue from \"vue\";\r\nimport Router from \"vue-router\";\r\nimport NProgress from \"nprogress\";\r\nimport routes from \"./routes\";\r\nimport store from \"../store\";\r\n\r\nVue.use(Router);\r\n\r\nconst options = {\r\n mode: \"history\",\r\n base: process.env.BASE_URL,\r\n routes: routes\r\n};\r\n\r\nconst router = new Router(options);\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n // update title\r\n window.document.title = process.env.VUE_APP_TITLE;\r\n // '/' will be redirected to home page or login page\r\n // NProgress won't be stopped if it's a self-redirect \r\n if (to.path !== \"/\") NProgress.start();\r\n \r\n // block unsupported devices\r\n if ((to.name == \"unsupportedDevice\" && store.getters.belowMobileCutoff && store.getters.userPrefsFullscreen))\r\n next(\"/\");\r\n else if(to.name != \"unsupportedBrowser\" && store.getters.isIE && store.getters.restrictInIE){\r\n next(\"unsupportedBrowser\");\r\n } \r\n else if (to.name != \"unsupportedDevice\" && to.name != \"emrstat\" && store.getters.belowMobileCutoff && !store.getters.userPrefsFullscreen && !store.getters.isFullscreen) {\r\n next(\"unsupportedDevice\");\r\n }\r\n // block un-authenitcated access to internal pages\r\n else if (to.matched.some(route => route.meta.requiresAuth) && !store.getters.isAuthenticated)\r\n next({ path: \"/\", query: { redirect: to.path } });\r\n else next();\r\n});\r\n\r\nrouter.afterEach(() => {\r\n NProgress.done();\r\n // store.commit(\"destroyStatus\");\r\n store.commit(\"tryDisplayDelayedStatus\");\r\n});\r\n\r\nrouter.history.getCurrentLocation = function(){\r\n let path = window.location.pathname;\r\n let base = router.history.base;\r\n\r\n if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0){\r\n path = path.slice(base.length);\r\n }\r\n\r\n return (path || \"/\") + window.location.search + window.location.hash;\r\n}\r\n\r\nexport default router;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAQCAYAAADj5tSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjQyOjQzLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0NDowNi0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0NDowNi0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmM2I2ZGE0Ny1hMThiLWE0NDItYTdkMS1jZTllZWMwNDY5OWQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZjNiNmRhNDctYTE4Yi1hNDQyLWE3ZDEtY2U5ZWVjMDQ2OTlkIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjNiNmRhNDctYTE4Yi1hNDQyLWE3ZDEtY2U5ZWVjMDQ2OTlkIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmM2I2ZGE0Ny1hMThiLWE0NDItYTdkMS1jZTllZWMwNDY5OWQiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6NDI6NDMtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6xYVo3AAAA90lEQVQ4ja2Ua3HEMAyEvxSBIQRCIARCIJRCGRjCMWgg5BgYQiAEgg/B9od1c740D9fNzmhGY3mi3ZXiRhIXogN64JYfflzYwAMjENaFK5r0wGx5l+UvSKoNJ+kmaZbUHd2tVfJkH3fZHyhxJ6ycpEnSIqkvVb1W4kgDXIBhVRvsfDH2oVj3TvfWGI+mLPyVfR5nFyYljGZV1ZLsDb41O3rgbnkstqfALq8XBlMw/2PV35p09rEnpqw21s4jt8uTngQHPIAv3rcrVFtldnlJUb8xWw1T4UtYb0Uj6RP4PuHyIA1+OVAX2f7zQyOdPvWtxRE6ktVbiD8rbkmyIvX9hgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Physicians-background-green.bb0310f9.svg\";","module.exports = __webpack_public_path__ + \"img/Proofsheet - Gray - Selected.b9e3d0fa.png\";","// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds.\r\nexport function debounce(func, wait, immediate) {\r\n\tlet timeout;\r\n\treturn function (...args) {\r\n\t\tvar later = () => {\r\n\t\t\ttimeout = null;\r\n\t\t\tfunc.apply(this, args);\r\n\t\t};\r\n\t\tvar callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func.apply(this, args);\r\n\t};\r\n}\r\n\r\n// same as debounce above, but allows an array of calls to be debounced separately based on a key\r\nexport function debouncePerKey(func, wait, immediate, indexArg = 1) {\r\n\tlet timeOuts = [];\r\n\treturn function (...args) {\r\n\t\tlet index = args[indexArg];\r\n\t\tlet timeout = timeOuts[index];\r\n\t\tlet later = () => {\r\n\t\t\ttimeOuts[index] = null;\r\n\t\t\tfunc.apply(this, args);\r\n\t\t};\r\n\t\tvar callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeOuts[index] = setTimeout(later, wait);\r\n\t\tif (callNow) func.apply(this, args);\r\n\t}\r\n}\r\n\r\n// returns a function that, when invoked, will only be triggered no more than\r\n// once every wait period.\r\nexport function limit(func, wait) {\r\n\tlet timeout = null;\r\n\t// store the latest args, so that the newest values are used after the timeout\r\n\tlet storedArgs = null;\r\n\treturn function (...args) {\r\n\t\tstoredArgs = args\r\n\t\tif (!timeout) {\r\n\t\t\ttimeout = setTimeout(() => {\r\n\t\t\t\ttimeout = null;\r\n\t\t\t\tfunc.apply(this, storedArgs);\r\n\t\t\t}, wait);\r\n\t\t\tfunc.apply(this, storedArgs);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport const limits = [\r\n\t{ bytes: 1000000000000, key: \"TB\" },\r\n\t{ bytes: 1000000000, key: \"GB\" },\r\n\t{ bytes: 1000000, key: \"MB\" },\r\n\t{ bytes: 1000, key: \"KB\" }\r\n];\r\n\r\nexport function formatBytes(bytes) {\r\n\tfor (let i = 0; i < limits.length; i++) {\r\n\t\tvar limit = limits[i];\r\n\t\tif (bytes >= limit.bytes) {\r\n\t\t\treturn (bytes / limit.bytes).toPrecision(3) + \" \" + limit.key;\r\n\t\t}\r\n\t}\r\n\treturn bytes + \" B\";\r\n}\r\n\r\n// inspired by vuex internals for mapGetters\r\nexport function mapWatchers(watchers, handler, deep) {\r\n\tlet result = {};\r\n\r\n\tnormalizeMap(watchers).forEach(prop => {\r\n\t\tresult[prop.key] = { handler, deep };\r\n\t});\r\n\r\n\treturn result;\r\n}\r\n// see: https://github.com/vuejs/vuex/blob/dev/dist/vuex.js\r\nfunction normalizeMap(map) {\r\n\treturn Array.isArray(map)\r\n\t\t? map.map(key => { return { key, val: key } })\r\n\t\t: Object.keys(map).map(key => { return { key, val: map[key] } });\r\n}\r\n\r\nexport function getsortedImages(unsortedImages, imagesOrder) {\r\n\tlet sortedImages = [];\r\n\timagesOrder.forEach(element => {\r\n\t\tlet image = unsortedImages.find(a => a.flSrNo === element.flSrNo && a.imgSubType == element.imgSubType);\r\n\t\tsortedImages.push(image);\r\n\t});\r\n\r\n\treturn sortedImages;\r\n}\r\n\r\nexport function compareTimespans(a, b) {\r\n\tif (a.imgTimeStamp > b.imgTimeStamp) return 1;\r\n\telse if (a.imgTimeStamp < b.imgTimeStamp) return -1;\r\n\treturn 0;\r\n}\r\n\r\nexport function sortImagesByTimespan(images) {\r\n\treturn images.sort(compareTimespans);\r\n}\r\n\r\nexport function sortImagesByExamDate(images) {\r\n\treturn images.sort(compareExamDate);\r\n}\r\n\r\nexport function compareExamDate(a, b) {\r\n\treturn new Date(b.exDate) - new Date(a.exDate);\r\n}\r\n\r\nexport function getSameDateExams(exams, date){\r\n\treturn exams.filter(e => e.dateDisplay === date);\r\n}\r\n\r\nexport function getExamsWithUniqueDate(exams){\r\n\treturn exams.reduce((unique, o) => {\r\n\t\tif(!unique.some(obj => obj.dateDisplay === o.dateDisplay)) {\r\n\t\t\tunique.push(o);\r\n\t\t}\r\n\t\treturn unique;\r\n\t},[]);\r\n}\r\n\r\n// log a message with full logging\r\nexport function logDetailed(moduleName, functionName, message, ...args) {\r\n\targs = serializeArgs(args);\r\n\tmessage = [\"axis5ui\", moduleName, functionName, serializeArg(message), ...args]\r\n\t\t.filter(n => !!n)\r\n\t\t.join(\" - \");\r\n\tconsole.log(message);\r\n}\r\n\r\nfunction serializeArgs(args){\r\n\treturn args.map(serializeArg);\r\n}\r\n\r\nfunction serializeArg(arg){\r\n\tif (!arg) return String(arg);\r\n\tif (isFunction(arg)) return \"function:\" + arg.name;\r\n\treturn JSON.stringify(arg);\r\n}\r\n\r\nfunction isFunction(obj){\r\n\treturn !!(obj && obj.constructor && obj.call && obj.apply);\r\n}\r\n\r\n/*\r\n// Function from http://detectmobilebrowsers.com/\r\nexport function isMobileOrTablet() \r\n{\r\n\tvar isMobile = false;\r\n\tif(/(|android|ipad|playbook|silk|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) \r\n\t\t\t|| /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g|nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(navigator.userAgent.substr(0,4)))\r\n\t\t\tisMobile = true;\r\n\treturn isMobile;\r\n}\r\n*/","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAADoElEQVRogd1aTU4iQRR+05CgYYFhQcKCKAkLEzAycVeb8QZ6A/EEwxHwBs4JBm/A3EA3tSPDhLAzUVYmLoi9kMQE4+TVvOpppbu6uqoa0S9pK0jR9b731Xv1++Xl5QU+A/IuOXDOtwCgTc9WTLVbfBhjly7btlaEc45GdwDgEAD2U/78CgAG+DDGkKAxjIlwztH4roHxcfgFAOemSqUmwjlHz/cBYNvCaBVQpU5ahbSJUP9HAkeODY/DGWOsp1tZiwjFAUpeysBgFf5g7DHGHpIqekkVKBZ+vwMJoPi7JUcqoSRCJH6uxOR4oAMvk8jEElkTEhKJZCJj5B1jIglTHGyjYmZJEcpOgzUkAZTy+1FfRHWtns0YUSwW4eDgQJQZ4YhzfqwkQoPdd5v2y+UyFAoFUSLy+TzUajXXlPrUcwK8VUR7ANJFtVoVRLB0iBJNj5aJkBrfXBORQGUcoxtWJaxI17SdUuld8kKJZt0CgggxM5pDYVA3m02o1+ta9VEZGT9x70uh3msiALCUBXQhG9XNUo1GA3Z3d2Prt1ot4RhN7HPOd5wQMSUedkClUgm+z+VyaVO3sF0SOUxqPINgFUAFUCULCNs9kkYZrSj13t5e8BnHCVdABVTQaEvMv1CRnaSaKPXm5mZAot1uawe3DTTb2pZE4nY7IrGxsWHSj42g2xb2Kk9K88Gxk7hC/Cj4VEQSF/YfAA9IZJTGzsfHR5jP53B/f585Pd22GGOjvI4i+ELP+9cLF4sFjEapuBtDsy0f/3jIJqnmZDKB8XicibHopOfnZ5tXCPvlvONKtRZBz2QFdJLlTEHsFXvhD6vAzc0N3N3dge/7gZNQFQuMwkQGqyKCRiMZR/AZY4OACMXJ1OTd6Fn0sCvjrq+vxaOJQIDwgHhu2jiSsOweATDVpkjtgc1hIn2ZylxCEnRFNISrcMYNiNA2pLEqcZjNZjAcDkXpGK+2rl7NtehgxShWJKTnwyn76enJNYmLt0d0UZPGTsT/tIGex7EBE0BG8KO2rpaIENMzGxvkGJERjrV24+F/F7vI0hpDnMad+qrWI106w1sXYFxEHikoiZB8h2tCBkkoY1f3VBc9ceLSshQ4VSkhobXUJW+cZjFgKoDDwFcdEpBmzU4vbNOUP2v8oLNC7RWc0V0UOkvpZXCegpmyZ3LBxup2EJ3+dmkj2fSQZErzvL7NDSFnF8+I1HHorlaUWj4thG6ptL7eJPE5btABwF+8JF9SiJRYzgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUQ4MDBCOUNBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUQ4MDBCOURBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTc5MTQ4REFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMTc5MTQ4RUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlXtLRcAAACuSURBVHjaYpxywlqBgYEBhLGBB1CMD+DT/4EFSCQAcT0OBRuBOICABQ1AHI9D7iALEqcRi4IFDIRBAw5fgh3NgqaQHPAAh16wBUwMNAbDx4KPNDD7ISiZMkEjyIAGFjiAkjgTUkqgNngwmopGLaCeBQI0ygcgMwVAFhQA8XkaWHAAiDfQMoj4R1MRUYAFLVLQwQRQRBEwIwDacBAgZIE9jhKRkAWgYtkflyRAgAEAsZMb/oxkS3YAAAAASUVORK5CYII=\"","import moment from \"moment\";\r\n\r\nexport const displayDateFormat = \"M/D/YYYY\";\r\nexport const isoDateFormat = \"YYYY-MM-DD\";\r\nexport const isoDateTimeFormat = \"YYYY-MM-DD HH:mm:ss\";\r\nexport const seriesTimeFormat = \"MM/D/YYYY h:mm:ss A Z\";\r\n\r\nexport function formatDateDisplay(date) {\r\n return moment(date).format(displayDateFormat);\r\n}\r\n\r\nexport function formatDateISO(date){\r\n return moment(date).format(isoDateFormat);\r\n}","module.exports = __webpack_public_path__ + \"img/Edit Patient - Green - Selected.ac4d3433.png\";","module.exports = __webpack_public_path__ + \"img/printbutton-gray.74efb4fa.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAYCAYAAAAlBadpAAAACXBIWXMAAAsSAAALEgHS3X78AAAA9UlEQVQ4jZ2U+w2CMBDGvxL/txvoBrKCG9AJ1A3YQEfACdQFwBEYgQ3UCagTnLmkJMej0vIlJH39Pu76OKBsU5TtkYgQ+yUANICbquwRkUrEcja4xODJoH9Wlb0vhVmHUIMpONjAB3cGjaqsXgKzdgBqn8Ec/NcgBJYG6RJ40iAGZq2lQSzcM1hFQF8AjWtbAFkI/CCjJx+NL+yraGcx53wio3MAH9fnHPMQmMHuTsvnORu2BFlPt0mszVSxSNzOmQEIMprHCzE0KhSKa5FPqrJbAC8xvyeja1/OPZHRbz4q399DbphMhyMRuQWUW5RtMSrPRPgBj9+fX7sX4+kAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/requestsupport-green.7241f891.svg\";","module.exports = __webpack_public_path__ + \"img/downloadCircle-icon-gray.eb3aa002.svg\";","module.exports = __webpack_public_path__ + \"img/Edit Patient - Blue - Selected.a0af0144.png\";","module.exports = __webpack_public_path__ + \"img/returnToAdmin-icon-blue.aa2e7dda.svg\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Blue.c4fcffb7.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjI2OjE4LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1OToyMC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1OToyMC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpkMDI4ZjNhMC04OGQ2LWMxNGItODUzNi02ZjEzMzZiNWExNzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZDAyOGYzYTAtODhkNi1jMTRiLTg1MzYtNmYxMzM2YjVhMTc3IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDAyOGYzYTAtODhkNi1jMTRiLTg1MzYtNmYxMzM2YjVhMTc3Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpkMDI4ZjNhMC04OGQ2LWMxNGItODUzNi02ZjEzMzZiNWExNzciIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6MjY6MTgtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4aAbL7AAACnElEQVRYhc1Y25HjIBBsX+3/kYF1EawyWIfgDI5QFIIzODYDXwZyBg5BlwEXQe8HsEZawDzklbtqylgajZrRPIAdSTSgB9ABONjxm72+azEaBckWiSGmfyQ5kZQ17/vRONe/hfpHAHsAfwBMAGTR042elSQ1yRPJgycxfR34CtmevqcgSF5JqsZJOTnYUFALwln2Uzc7S7TIYIE4+9l2XyLR0QMYAfwsjMkSTPY9+QjMoOfX2Frbq1USitHpGYmS4dI1euN3lJaXdSARKG07MtjBlPfQFtAw+fIPpkMabP1pIzJ4YSjd9Zhnt4aACYOZd1vb7aOgAZzteA8bjmuSlTDJSU9G1Mf92RsPAADe+ruiaYWl8dUHyt0Sk9UrsXtY8gLJ0TOqK4hqj5CkaaOwv9KbiK4gPBNw3q1OhQYckStNQwnpCN7WGFMrWR8lYSA9AjGiPmE3MVlLdplguiABXOIMGc/pzyRpaDQt1cDtt8ZMfaf3llJKIbZELMG0st4Sn13rBe070S6TSFdh++D/aQmDS8hgxosvKaUUWsgq+zvA9PIUBG4JpqJa99BS976hzp78utpKtufjOpjgvGGN7saRpgdrpvf9McIT05gKiTqyPi/pbvgzOFZ6WXK+zqD9LyvtfRE3GLwXqLWMry1upyBwW5kDwC/UF/GHwZUujVtpAeYL36eBX2cVgP92fP12JgYCZg2hgncXcTFsGLOCd87WlguZ4ZFuS0DAhN5rUmvrDA94NOhV8v757NMQJcuO6RVM4nVVHzqOqzdOnq3lnsgoAL8XRs8wJW8soha3D9zZ8uSSlTDJtw/ZCFwTmB8UH60NiZYaXhhjkvNFyzkRiyFE4zFHah90pGVCJwTdQvaRp4hLwxeY2FS1Bj8ABw56j824qIEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAACXBIWXMAAAsSAAALEgHS3X78AAAC30lEQVRYhc2XsW4iMRCGf0fXm+QJEPcCSHcPkAJq05CaClq6UFIeHW1SUXMNrkPBAxwSL3CIJzjwE/g04l/OsbK7XuBQRlotYu2ZzzPj8Vh573GuKOvqAOrR9I03+nC2UkplMGVdDcAQQAfATkCiIR2+p97o2U3AlHU9AGN5iozSkzKuCaDnjY7hrwemrBOQGg0lhUpZJ2AL8WJVuCQwZZ2svu6N7lVRjn+hX1X2nIAVPVgcHrE4rMrGlehoYnHYYXGopc65S2CXEOZ56h7Ai6wPwHPu4o+emnHTJEkhmLLuUcLgjd7lDJkDaCTamgY7tlTKPNZh8ubJE4B2iiFumA03xMVgTW90Edg+xUggq1SvlYHVKhouk7yUqAx28dFyrtzaY8lS6jEWyGtJPTUKZWBSfx6vCNbhBiiVMrBKRbFIeLA3U4+lQrBMCQttoV0Ak5IxYz5JknIkyXE0vSTXlHUdNgHJ/VkpGI8jOU5W58Cx0lc6jpLACDcL4JKOFEINmaedqu121Q62SUMbts4fJjJDN+S48Tl3gLMuIzTcC+rSisW4yfeK4MlH0FXAIsgMSEKeVKNuAva/5IuyrgXgLdC/lZrkjX7F0SM++jbg7zdvtDqt8Diu7Y1eKuukm/3BT0/e6J+RHrCPE32/szGBnq93WQdKIw8slC/Kun6gZMBva7bSeV1rQ1n3jVDfOSfs2QZih8+SrTmCRWRy/65ceKP39NQk7uHlG4BlhVZ6T33LlLGRI3Lr2DoGUNbJ6lqEyxVv9JpjfjGkKTKJvZZUYBm+PwC67PMLxRst+TMSryvr5qEeyaE435hf23AheWCxZ7Ic2zLE28CLpzc9nRl75bxuqCfLsQ9sjsL0eQcmBkjdj7sF5pgY6zJv9oGiZ+bUmjpa/L+RemGhzm0Ilq3eB+FqR0mbTVhy5zUY0i7ndYNrnOzKOf/vR9e7UyiZ7DH0iO/9py2wqcl/c/mcYAD+AmgzruHTT1N0AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAZCAYAAAArK+5dAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkU1OTQ2MDRBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkU1OTQ2MDVBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGRTU5NDYwMkFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGRTU5NDYwM0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt4p474AAADHSURBVHjaYvz//z8DLQHLsWPHaGnDQRYg8Q6IhaAC34H4PZoiZiAWx2HAMyxiIkDMBmW/ZwISP5Akm4FYGg2b4HGhNBY8F0n+N8iCz1DOLyCeRYVgmYLE/gyy4AuUswKI31LBgmtAvA/K/sGEFI7TqRi5M6D0W5AFz4H4FBCfoKIFG6AO/whKRcVAzETl5PkbiHVA8cqCFAfUBuDkzsRAYzBqwagFoxaMWjAiLGDBY7EZENtAaVxgJhBfglZYZ4H4H7oCgAADALLzKrxCSqz5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjM0OjEzLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1MTo0NS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1MTo0NS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MTAxODZlYy1kYzBiLWIzNDYtYjQ4MC02YjdjYzMzZjYxMTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTEwMTg2ZWMtZGMwYi1iMzQ2LWI0ODAtNmI3Y2MzM2Y2MTEwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NTEwMTg2ZWMtZGMwYi1iMzQ2LWI0ODAtNmI3Y2MzM2Y2MTEwIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MTAxODZlYy1kYzBiLWIzNDYtYjQ4MC02YjdjYzMzZjYxMTAiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6MzQ6MTMtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7F4joiAAABtElEQVRIid2WzysFURTHP897kd8JkewkC1mJlERKlrKxlSztlI09WytbWeEPsCErkSSxsLDVK3bvLfyO3tdi7mjmdmfM8Fj41mlmzrn3fO+955w5NyOJv0BFhL4HOATeAaWQArDi8ptx7CgHXANdQBF4TbHwJqAKWATWQhZJtgzIw5GkCoc9TgbN3GPb5jq6GvPMA6UUuwG4sXx8IipGZcf/I8oF3juBSaDPfHcDCyn9NZhni5l7C+wCb35WjEt60O/gTFKdX0dXQO93j8XCCXAAzAMdRrfk76hUptW/Sqo3PqcC+g0/GTJl2k0WLz4A7QF9JucY/FOiU+ASGA0ayk0E0ApM2Mo4on1gOSVJM7DnMsQRFYDzlERtUQaf6BGojRgzB6wmIOmKsT36RDt4ee9CDeEMikJU5paAHb+OqiWtS7qTdG9yf9vYKiU1RkhW4b7TZua+SypKupI0I8nZ+EYtooWYAu2PILqw/SZJ7yJea3fhJcF8IFkdbRlJAj9OzouIjbwZOAJMA08JSQDGAj7CcMQISZsxcfkKz5KGbJ+u6xZ4nXcWGMb7fyVFEdjAazshfABBzmeKfAxQngAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Dark Gray.26419b74.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjM4OjE0LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0ODozNC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0ODozNC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozOGNiOWM5YS1hYjdhLWRlNGYtYmIyOC1hNTBkZmVmMjBmMzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzhjYjljOWEtYWI3YS1kZTRmLWJiMjgtYTUwZGZlZjIwZjMxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MzhjYjljOWEtYWI3YS1kZTRmLWJiMjgtYTUwZGZlZjIwZjMxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozOGNiOWM5YS1hYjdhLWRlNGYtYmIyOC1hNTBkZmVmMjBmMzEiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6Mzg6MTQtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4NM+QDAAACC0lEQVRIia2Wv2sUURDHP94JaZQEDGhhIaTIgc2BRYQrku4sLCyEWAiWSRHQIkUgpaVF8h9ESKGgpUU6FRERIl6REK0sUiRWHpyQ4i58Ld6sN3nsj2fcLyw7O2/mfd+bt/PdRRI5V1fStqRDjTGU9FXSU0lXC/IKr9gxI+mDqnEiaV1SM5XogiQMHeANMMUY34BdYARMAwvAJTf+GngAnFIFt5NfbsWfJN3KWdmEpMeSBi52+19K58v1IirJhqQfkm4636ykI5ezmELUjXYS1/2tjc1H/o7CCyJJB1VEDeChq+RKUr0DPgIvzW7ZGReiYQcM4eC/JJJkeO7s22WBF4HrZu/afQNou5jM3gT6zr/mciDsqpQow8ju94AbObHt6LkFfC6YK5doZPdp8911NoSdtIEnQM/594AZ99yvItqziRaACWA/iskm6AHvo7H7zu5RggZBDSB0/HJZcIQmsGr2CNgpjVYQyBPrh4E1Y0ofPXP9t5WqDOsu6UjSnAuak/RI0hV7bkYkycqQJb9yiUMFDZuXNKmxHi6ZCsQYKChF0meiaZOfF6Vkec7FglVnGCqcSVdnhbWUzH+PYnQIstIitEGf8ArvAD8tZhZ4B1xzeb+BOwQtPPPW/e8VfzJyd1YHURJZXUSVZGVndB4UndnlRp0swHeCZh47X5C4GkuXV8a//x91l64QfwAEuu3Bglrw4gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsSAAALEgHS3X78AAABKElEQVRIia2UgW2DMBBFv7NAvEG7QekE7QjxBOkIHSEjZIOGBTDdoNkg3SAb4Exw1aFzRehBjc2XEBJn3+Pfxxg03QHAFUBLzgasrA0AbvoBoDM+tMaH3ZoIdmDFwXbw/MaOxFVbBCAiGB9OAPYTaxhWkbPXHMBG7oeZNe+5zX8B0uCs1M/k7Cm3OQYOWEel/iLjy1afQZTxgZ08KM1qcvat1EF0UQN4lnCj9rlOxg5sPGzGhwrA1+jzrSX05AN5B/hT1CHfAF5TIeMR3YmcvXCz0bieGMpuiwGsUsi/gFJIEiAB8ji1bzZkdYMe/E2Cv2Q7iJpwshUnVTEACyFZgCWQbEAqZHHImuaCXwXQv6kO+Swa0VDKuPgXvwM7WPNC01VoumPfkwg/tFbdVhj9iKQAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/ZoomGreen&White.d3e6aaa4.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAAjCAYAAAAJ+yOQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjY3NjBFQzRBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjY3NjBFQzVBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2Njc2MEVDMkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2Njc2MEVDM0FEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PujZEqkAAAMUSURBVHja1Fc7ktpAEB0oDiB8AooTqGodESmAXAkbK8IpGYQKdzNSb6R4negABEogMlW6gCmdwOgGcg9+7eqdHQn9cO121SvBqKfn9WdaM4PD4aAqZAKw5IRUtRfTnpZ0NpvlVZMGJSQDQghCqbGIR4gIO5C+JQ5hTfAJmcVJH88dkY1sBkYWT2NCQnArSARYLICuqtALAdemQMTC4/Go19VP7UxAY2lZJJ2aC5sOhXiaEsFmUBVxIvTvN5F0YcuXRIdCP2lAUCF1HtJu1lkoUpnXLVgQ00QjEH5DksklDTdCjnoLxZgHBG12FjaRnhsTUUeSXCMibSSG945Ic9ChA3BEI/C6kpwgIlkHuzFS6yEbXWyx7HjnM8mko8EEdvySTdQ27amuzaHqV9y+SArn/b5JOj3byzjdWVmjbRjBrEm7aSKSZJcocAtz7kWSd9K6pQ0PjnIk+yR67TySZNAi7Y7sZ/isej2S1N0iGRoDcQOiDlIcir4YdcjIG8Ghw9WNXZJMQbTOQty0d9CXNlRP0eTT07ujGqdrjd/8Pc/F4r5wKCvZRDF085ZR1LYnfL4clRwa2AvPiEpa47CbQSdpQxSnn50su1GNjt/mkxkZx7+0JsE19H15pRip+0kEcpHIQFqRXi4xz7zzDG5cxPpsJYE4cXHjd0WX0HecrMlF7J7iiHpL5PWhTEbq/0vetM65T84JhcAvwkrome/mYo4y9Ob4vRFzlhY7V12qxymhICxFjer/U5MkDwwIXwjPhO8G0W94d8K7aYnjevyB8ET4ijkXw84A2BPGGH8y7Ixtt0UWbfAFRDeWd/sKgjZbPOemLkVvVZVum5wsZMZI561FT9D5aXG0TJ4t0bxJ0hSd4t+or8ca+gvCFiRfDTuFWc+0y3/Q40zR3DQhaUaMa/KMhc9G7YxFFFleMG9ZUpOmbG2Rt5EcQ3GFFNjqdQkHLsLoBv9Poix4I11q3hD3wvl3JM+iRXBKF0YkWYc3zhRpX4o2s4DOA1JcwNlFSbpXFge2IiB/W05RFOqjy1B9AvkUJP8IMACJVBvFXbMC2gAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Exams-background-blue.329f4a3e.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3tJREFUeNrsWoGVmzAMDXkdgE5QOkFyE5RuwG3gEdig6QS5TsB1guQmIDcB3AS5TpB0AirniVbRScYNmCT3ovf0joCw/SVZ/jY3mdzkJkEkCtFo0zQZ/PkCOgdNFbNX0Br0GXQTRVF9ER6BwSegBeiuOU22oDlofG4APgMtPeysI/KxQRglAnbQS9BU8zDcn+P7WhQraxMaQKxEwd5LezhlK7RpQoKoBO+lA7WfCxFahgBShu4EnRW2H1tag4f9X19F0DTDfDYjFRQOZj65VmFpVl0zkJgVgMU1g8nYohm/lxS76qiklD14s1/kPGtgpq8ddraS2FDvKYvF+xkzX2tMF1nz3GVro0IY9T08X/tOsFWH3YJ4qXSUzSMqI/CuytPWaM+0AS7JC6nynHOjUgDXUhhuuyBtVQIDFld1dLCYXho1b1y1W/FeKQzMKN6sCLeirDkRbJv2vjDpYxeQVRcLbdOORa7kIF0OcIEWxpEr6XzIlqlUGYQJamVJ0cMk+wh6D5dPyjaWtkcnfyvtJD6a3KydF3I9k9pv359KA1YCZUH47tx+kOsSU8FGi6bod86bwDF71s6GXCcKkPgNEAyti5R9o7mqnmhE0QPzbsoOITZYNgdbnae0Gjii4ROxo4rG0rMmqXQA5lU6TwFive3pocy1G8R0aVPQpsodeP+g9hrvWTEsXQYD8hP0K9GapAqXjQsouX6kKzNePyp5PxFKaarMCyr7IyC2EzvAVimQofbjitTKwHmleuaVir4/dXTwS/Nch1DPGaH8GlaVnlgxiQnvypTSPPOIlMg0C0+7UqEclXRP2TQ1gu2S9dnSnZ3vrqzpekEBkjhIYIPrSsxI486TNCbSsw+OtWAPhmsMrwWVKZS5xuLwd+Ih7b8jtPwTSdc31Nz+BtvP2NcMU/kF1xteWIwybzpPS1pZXcjmauedVo5Nf3JmEPnJB3baxukCTlKSvg2YMwFZ9T54YHNlN/ZpH+t/2+soiHmkGutcCUtz49p2n5Ji2zHBCOtLHqrhYF+VhD17EdpLg37zU76GFSFDXgm0Ix0gCpyq5KEnYcxOUCgg4zt/0CkL4dxr+z+OiQYAZDsrFKpfI1X/jTysJnuOGfKwRNgo2cOLB+EwYrRa7/Md3fUdfnExnwuQZucIquu/IEocfO/KF40Ejud6fZa0ucmI8keAAQBBZLJwVnGiJwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Pink.0c22c745.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAR8AAAHKCAYAAAA6pE/RAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxMjoxMDoyOC0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTI6MTg6MDMtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTI6MTg6MDMtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NWU3Y2UyNjAtMTNiZS0wOTQ0LTlhYTgtNDk3ZDUwOGIzMWY5IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZGMwNjFkMzctNGIwNC0zZTQ0LWE0NmUtNmUxNmNiYjMwMzRhIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDdjMTJkZGItYTliYy01MzQ1LWJiZmItNzU4MTlhNjRkNWViIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpkN2MxMmRkYi1hOWJjLTUzNDUtYmJmYi03NTgxOWE2NGQ1ZWIiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTI6MTA6MjgtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5MmIzZGJkLTAxYmYtYjA0NC1hZGY3LTlmZDEyZjE4Mzg3MyIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxMjoxMzozOS0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NWU3Y2UyNjAtMTNiZS0wOTQ0LTlhYTgtNDk3ZDUwOGIzMWY5IiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDEyOjE4OjAzLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtaA64oAAAjsSURBVHja7d3bbhu5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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAaCAYAAAC6nQw6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkU1OTQ2MDBBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkU1OTQ2MDFBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGRTU5NDVGRUFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGRTU5NDVGRkFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnJz8dAAAADMSURBVHjaYjx69CgDHmAAxAJQ9gcgvoBLIQseQyYAcT6a2EQgLsBnUADUdmSX+APxRiRXgAxIgLoM3cIPjECvYbOZFHARiB2YKDQEBPRBrgV5rZGBcnAAZFADiAHE9mQawggimLBIfCTAxyrGhCXgAtDEAqDiyEkggZBBH3A4/wMa+wMhg8gGowaNGjRqEF6AXviDyqQFaGIgvjwSvwBLCQF3EXI1I4+mBp3PDy1eUcolmEENaGUOsaAA3WsfoFUQcoVICFxALpcAAgwAFzwnvirwfL8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDI6NTEtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDI6NTEtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZTI5Mzc2NjMtNGM5NC1lMjQ4LWJlMjgtMzExYTFkZDQ3OGM4IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OWMwZWE3MjAtODA1NS1jNjQ5LWJjMDMtYjVhNDBhODUxNTljIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6M2RmZjE5M2UtNTA2Ny04YzQ4LWI4YWQtYjI0MTFkYzFlY2ZiIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozZGZmMTkzZS01MDY3LThjNDgtYjhhZC1iMjQxMWRjMWVjZmIiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmUyOTM3NjYzLTRjOTQtZTI0OC1iZTI4LTMxMWExZGQ0NzhjOCIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0Mjo1MS0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz425NSBAAAIKElEQVR42u3d23Uky45EQYhI2SgZNUqKwGLWIxyAfez/noKHTZ1eTd76/vkqre16Mp+h9MZ8CAB+Z24gARrEzXIzCdBABrYEaAEZ2BKgoQxrCdCCMqwlQINZoJYADWVYS4AWmEEtARrMArUALTCDWgI0mAVqAdqHAGZQS4CGsyAtARrMArUADWaBWgI0nAVpAVpghrQEaDgL1BKg4SxIC9BgFqglQMNZkBag4SxIS4CGcz90fF4SoOHcDBafpQRomDRBxGcsAXoNHD53n7sADWdAuAGkBWgw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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTU3Mzc0RTFBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTU3Mzc0RTJBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGNTRBRjE1MkFEMDkxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNTczNzRFMEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIv3AsAAAKVSURBVHja1FndkdowEBaM36EDnApwB/F14A7OVwGkgvCQArj3zJzowKkgugfeMnPuIKQDU0EiTz7dLIpteSUZyM7sYMAWn/b3WzE7Ho8iQDKtqdYc1x/x+UxMIEng82/M+wute607rZL7Y/NAsN88wK60vmg9aS2vCbbSetb6rPWB6BBYI2zQrjBYalVa654FJdOdBdZsXx8J6HzMOkNgU1huDRVct3WIIh7Z4bUOtWyGhRdiOjnhd4JitgvoIYJVg2XeEaPVPQLts6y6A6BlV5WY9XQwGSmhfKWBd38h0QfrbHlj1+9JWStjNYUpwZ5xvbt3sA0S/cK69wpWELDv1k2Aeo8vK+smjuRYK7UKv7QqDMe6Z4qprQaK8NAzai1HTG0+YdO11WC22EABAEF1NusoWRygNahiaQEVpO8bzy1DwCZWt1IecfVF64+R8VchXKJ0sIYZo63rv8KCLrpoQiUaWG5L3HvUzzIkDHwltWJ0DIjaqhZj5DcF6zuJLh0hokS45LHCoBkxEUxOEWMyfTvpMjx3dbASBZ8jW48BMwpYRTqTcFDN1qKfcL9i5ARN2tc52YFEHObMnW8dgAXOEjYj7uva7AE0QCbEpYsRWd6VZAUKfuHgBhmz6TQ2sUpIsf5MrFUxF82h24is6x8xM9gSCxvrfgjJ2qmn24aODwGc9mqjuCRzT30jPOZsTbq4QYPYTW802RqgazIMlENEZndDi5pDwElY1xQWHTwJmv8vQLlgpScfHcNxnUA5YdACNSfVP7FohaQMKfiNBa6MEbMKHWqF948E/KzHvZnFIQypqXo4QDSKKOH+J/H3ZM/I0L8134lu0B2LkHjhJpgNumJOEUFgfUuXa+zuklePZy7kjwADADNpqMdSdBJnAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/AXIS Logo for Dark Backgrounds - Cropped - Green.bf7f83b1.png\";","import InteractiveAnnotation from \"./interactiveAnnotation\";\r\nimport { setFontStyle } from \"../canvasUtils\";\r\n\r\nexport default class DeepDeeAnalysisChart extends InteractiveAnnotation {\r\n constructor(position, options, context) {\r\n super(position, options);\r\n \r\n this.x= (context.transform.canvasSize.w / 2) - 340;\r\n this.y = 0;\r\n this.context = context;\r\n this.isActive = false;\r\n\r\n this.chartImg = document.getElementById(\"bar-chart\").toDataURL();\r\n this.img = new Image();\r\n this.img.src = this.chartImg;\r\n\r\n this.font = \"30px Calibri\";\r\n this.fontColor = \"white\";\r\n this.backgroundColor = \"#707070\";\r\n\r\n this.diagnosisColor = context.diagnosisColor;\r\n this.diagnosisText = context.diagnosisText;\r\n this.disclaimerText = \"Note: This data and analysis is provided for REFERENCE \\nONLY and is not intended to replace a consultation \\nwith a qualified ophthalmic professional.\";\r\n this.disclaimerLines = this.disclaimerText.split(\"\\n\");\r\n this.titleText = \"DIABETIC RETINOPATHY AI ANALYSIS\";\r\n }\r\n\r\n\r\n draw(ctx) {\r\n this.drawChart(ctx);\r\n this.drawText(ctx);\r\n this.drawTopText(ctx);\r\n if (this.isActive){\r\n if(this.activeCorner) this.drawInteractionBoxes(ctx)\r\n else if(this.isTextActive) this.drawTextInteractionBoxes(ctx) \r\n } \r\n }\r\n\r\n drawChart(ctx) {\r\n ctx.drawImage(this.img, this.x + 675, this.y + 100, 525, 525);\r\n }\r\n\r\n drawText(ctx){\r\n setFontStyle(ctx, this);\r\n for (var i = 0; i < this.disclaimerLines.length; i++) \r\n ctx.fillText(this.disclaimerLines[i], this.x, this.y + 400 + (50 * i));\r\n\r\n ctx.font = \"bold 100px Calibri\";\r\n ctx.fillStyle = this.diagnosisColor;\r\n ctx.fillText(this.diagnosisText, this.x, this.y + 100);\r\n }\r\n\r\n drawTopText(ctx){\r\n ctx.fillStyle = this.backgroundColor;\r\n ctx.fillRect(this.x, this.y, 1200, 65);\r\n\r\n setFontStyle(ctx, this);\r\n ctx.font = \"45px Calibri\";\r\n ctx.textAlign = \"center\";\r\n ctx.fillText(this.titleText, this.x + 600, this.y + 12);\r\n }\r\n\r\n isInBounds(x, y) {\r\n return this.isBetween(x, this.x, this.x + 1300) \r\n && this.isBetween(y, this.y, this.y + 550);;\r\n }\r\n\r\n isBetween(value, bound1, bound2) {\r\n const min = Math.min(bound1, bound2);\r\n const max = Math.max(bound1, bound2);\r\n return value >= min && value <= max;\r\n }\r\n\r\n mousedown(x, y) {\r\n super.mousedown(x, y);\r\n this.signalReady();\r\n }\r\n\r\n mousemove(x, y) {\r\n this.updateLocation(x, y);\r\n this.signalReady();\r\n }\r\n\r\n updateLocation(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n \r\n deactivate() {\r\n this.isActive = false;\r\n this.signalReady();\r\n }\r\n}","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAACXBIWXMAAC4jAAAuIwF4pT92AAAEaUlEQVR4nO3bPW7cVhiG0U+BFmBtQd6AgUkfF/ISlCWM23TjLq3cpZWrpLWXIAHxAiIgG5CQFURLYCDgDkAQ80OpCe+rc4ABxp4hdEk+IDn8ORmG4beqelfQv19OW8w/WZkEePODtUgSQRNF0EQRNFEETRRBE+V0xsz8UVX/WO0swK/HhjAn6N+r6ru1yQIcDdohB1EETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQTN2VlWbqvqrqob2uq+q66o672FJnS5gDCzDqqpuWtQPVXXbRnVRVeuquqyqH9tni2ULzdZdi/VjVb2tqg/t9bZ9dta21IsmaMaeAv4y+b+nyD+19xct7MUSNGOPe5bG7ej9aslLTNBEETRzbLfKj5Ot9eIImjnW7Tvflr60BM0xq1HQn5e+tATNIeNTdZ+Wfg66BM0RV20LfdfD1rkEzQHX7VDjoZ2f7oKg2eWqxfx0VuPnA+enF0fQTK3bDUqPbct819MSEjRj63ao0WXM5W47RtajMxqP7bBjl7vRvR2LI2i2Lkfvz3u5/3lK0Gx1cybjEMfQREkLejN6dGiY7Ear7Uav2pMZ/7bv3IwuIByyGk17P5n2InSc/RmG4ftw2PthGKqT1+VkTjZt3GfDMFwdmc+hfWc6r+fDMNzMmPZr+ztzllUv41za65j3acfQuy4AnLUt1Jwb0zft+x/bv8fP2R1z2basH2ZciOhlnN15DT8KryeRfGunns7bLnj6a37dPr+dRLK9F/jQtKsW20tOa/UyzmULO+S4mIz9fvT+pu2Wp9Nsdszz/WT3fb1nN71r2mHP3+lxnN0dcqQHvfX1yHT7Vvg2kudOuwkZZ3dBv4bTdo+jY819Pu85nnyYOe30EvFLzib0Ms5Few1Bf5n542f6+H494x7g6aNJLwmll3Eu2msIeu5zcLuexpj7QOium3iee+m4l3Eu2msIeu4dY7tCmfvI0a6gnhtKL+NcNJe+iSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKGlPfT/d73vyP0xbz5y2l3F2xxaaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJsrpjJn50yqnF7bQRBE0UQRNFEETRdBEETRRBE2Uk2EY3lXVG6uV7lX9/R9pRo62+ZQMywAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/AppStore.343bee6f.png\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Pink.6fd0c626.png\";","module.exports = __webpack_public_path__ + \"img/Proofsheet - Pink.25f3cc77.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Blue - Selected.5ea653bb.png\";","module.exports = \"data:image/png;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4yLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MCA1MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAgNTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiMwMEFFRUY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yLDIzLjNjMS45LDMuMiwzLjcsNi40LDUuNSw5LjZjMS44LTMuMiwzLjYtNi40LDUuNS05LjZjLTEuNSwwLTMsMC00LjUsMGMwLjMtMy4yLDEuMi02LDIuNy04LjYNCgkJYzIuNC0zLjksNS42LTYuNyw5LjgtOC4yYzguNS0zLDE3LjgsMC43LDIyLjMsOWM0LjMsOCwyLjUsMTguMy00LjIsMjQuNGMtNi45LDYuMi0xOC4zLDYuNS0yNS41LTEuM2MtMC42LDAuNi0xLjEsMS4zLTEuNywyDQoJCWMwLjUsMC41LDEuMSwxLDEuNiwxLjVjMTEuOSwxMC40LDMwLjEsNC4yLDMzLjktMTEuNWMzLTEyLjMtNC41LTI0LjYtMTYuNC0yN0MxOS42LDEuMSw4LjUsOC45LDYuMywyMC44Yy0wLjEsMC43LTAuMiwxLjQtMC4zLDINCgkJYzAsMC40LTAuMiwwLjQtMC41LDAuNGMtMSwwLTIsMC0yLjksMEMyLjQsMjMuMiwyLjMsMjMuMywyLDIzLjN6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTIzLjUsMjcuNGMtMS4zLDEuMS0yLjYsMS40LTQuMSwxLjFjLTEuOS0wLjQtMy0xLjYtMy4zLTMuNkMxNiwyMy45LDE2LDIzLDE2LjMsMjIuMWMwLjUtMi4xLDItMy4zLDQuMS0zLjUNCgkJYzAuNywwLDEuNSwwLDIuMiwwLjJjMS43LDAuNCwyLjcsMS43LDMuMSwzLjNjMC43LDIuNywwLjcsNS40LTAuMiw4Yy0xLDMuMS00LjUsNC40LTcuMiwyLjhjLTEtMC42LTEuNi0xLjUtMS45LTIuNw0KCQljLTAuMS0wLjQsMC0wLjUsMC40LTAuNmMwLjUtMC4xLDAuOS0wLjIsMS40LTAuM2MwLjQtMC4xLDAuNiwwLDAuNywwLjRjMC41LDEuNCwxLjUsMS45LDIuNywxLjVjMC42LTAuMiwxLTAuNiwxLjMtMS4xDQoJCUMyMy4zLDI5LjMsMjMuNCwyOC40LDIzLjUsMjcuNHogTTIxLDIwLjljLTEuNSwwLTIuNCwxLTIuNCwyLjdjMCwxLjcsMC45LDIuNywyLjMsMi43YzEuNSwwLDIuNi0xLDIuNi0yLjUNCgkJQzIzLjQsMjIsMjIuNSwyMC45LDIxLDIwLjl6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM3LjIsMjYuMmMwLDEuNS0wLjEsMi45LTAuNiw0LjNjLTAuNywyLTIuMSwzLTQuMSwzLjFjLTIsMC4xLTMuNi0wLjgtNC41LTIuOGMtMC45LTEuOS0xLTQtMC43LTYNCgkJYzAuMS0xLjEsMC40LTIuMiwwLjgtMy4yYzAuOC0yLDIuNC0zLDQuNS0yLjljMiwwLjEsMy40LDEuMiw0LjEsMy4yQzM3LDIzLjIsMzcuMiwyNC43LDM3LjIsMjYuMnogTTI5LjcsMjYuMg0KCQlDMjkuOCwyNi4yLDI5LjgsMjYuMiwyOS43LDI2LjJjMC4xLDAuNiwwLjEsMS4yLDAuMiwxLjhjMC4xLDAuOCwwLjMsMS42LDAuNiwyLjRjMC4zLDAuNywwLjksMS4xLDEuNiwxLjFjMC44LDAsMS4zLTAuNCwxLjYtMS4xDQoJCWMwLjEtMC4zLDAuMy0wLjYsMC4zLTAuOWMwLjQtMS44LDAuNC0zLjUsMC4yLTUuM2MtMC4xLTAuNy0wLjMtMS41LTAuNi0yLjJjLTAuMy0wLjctMC44LTEtMS42LTFjLTAuOCwwLTEuMywwLjMtMS43LDENCgkJYy0wLjIsMC4zLTAuMywwLjYtMC40LDAuOUMzMCwyMy45LDI5LjksMjUuMSwyOS43LDI2LjJ6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1LjksMTguMmMtMS40LDAtMi40LTEuMS0yLjQtMi41YzAtMS40LDEuMS0yLjYsMi40LTIuNWMxLjMsMCwyLjQsMS4xLDIuNCwyLjUNCgkJQzM4LjQsMTcuMSwzNy4zLDE4LjIsMzUuOSwxOC4yeiBNMzUuOSwxNi43YzAuNiwwLDEtMC41LDEtMS4xYzAtMC42LTAuNS0xLTEtMWMtMC42LDAtMSwwLjUtMSwxLjFDMzQuOSwxNi4zLDM1LjMsMTYuNywzNS45LDE2Ljd6DQoJCSIvPg0KPC9nPg0KPC9zdmc+DQo=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAaCAYAAAC6nQw6AAAACXBIWXMAAAsSAAALEgHS3X78AAAA40lEQVQ4je2VzRGCMBBGXxzvpgNL0A60A6EDO9AStAPswApk7MAStBJjBXHWIQyuiSDjke8A+8cj2cOu8d6TkindHLBV2vncXpO1KZApXQFsVPjgc7tNgkzpMmDeiIu9As5AOEUAFIpR+Nw6w+ke+/MvugFLAaWb1F37sTz+ALqEHl2ARR+Cz62R9yiSe7T4sZoPkDQuU7GsigcdgHUbyCVu4JT9URe7Wi8NoAE0gL5qrJIyk44qJv604cvs1hOiPlFzzTQ/ivkTYFbZ9VwKoJ2aOV1Vr6a3vaYWYpuusoZeRcATunZCUBcEwLUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Blue - Selected.4b59ffa7.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAYAAACOqiAdAAAACXBIWXMAAC4jAAAuIwF4pT92AAADlklEQVR4nO3c61XbMBgG4Nc9+W86QdkAOkGzgbMBsEHYADZIJwA2iCcgGwATFCZoNIF7lHwqSYiukWxd/J7DD0hslOd8iiX5UnVdh9JStewMwAzAFMD5zsdfAXjtmnqpIykKjsDm9FMr3soALLqmvpPuqxS4qmWXAHgl/bDY7INXZtfUr4cvfPPbvDhTtewawIslGuj9L7T9XrKHow/9cOJuHg7xsu6qntBE+PfeVHTbbCvOMxroYPIofskSLgCayIXostnBBUQT2QxRsvqO6wFN5Gc2FdcjGs80C7ie0XjOkocbAG2TpOGGQkPKcEOiAXhP8qg6MBrP9+QqzhCNBWzCU9fU66TgDNFuaYEyFN5mAJwMnCEar4YFTcRD4N13Tf2OVGYOFmj7Sz/bxcuVZrXXNHv7j77iXNF4PFbeGy23/0/UcKegiXjAe6N1uPXuH6OF84EmQngzh2YcRUOscD7RRLqm5t91NxbNkKIhRrgQaCJdUz/ScEUXJRpigwuJRvvnJ59122rReCYuDQiRHtBMhiZGaIil4lJDQwxwPaBNfaNhaLge0Ph2z77RMCRcT2i6/TuhYSi41NEwxFE1EjTn/Yv0WnG5oKFPuKpli1zQ0FdXrVrGpzpXmrclg4Y+Ki5HNISGyxUNIeFyRkMouNzREAKuBDT4hjNEu08dDT6HI4ZoN7QK67L/aNDgq+JKQ4MPuBLRcCpcqWg4Ba5kNLjClY4GF7gRbRsruBHtM8ZwVcvmI9pnjK6Po1Nsz5q3FYMGk4qj27FVIKw0NBhOue4Udxbv3cNpm1TRoOuqdJHKH8X2xVWaiK6rSp+CAOB3qWhQVZym2ngXPXc5mZsDGjQVN1e9VjIaNHCyxvNq0z4J5jA5oUEGR+M22RU+S9tqyw0NiopTXaHNz8gbJ0c0KOCmkr9/2IzZQl/2MGS+DIDpaHohadPKtK2hz3YNnWMzB1U31T8ebPv9uFDgi9zyG9ZiB5LlGJysmzLVc9Wqls1oCPPL4P86zzhiyR4cTegbSdu+oNHV3NdUpaZPykoeDUcqTns0pa44s8QSyQINFnB80Dun7uh672c2aNidq1I3/RvgfzCaomWDhoNxnMttiapwsCcAl7mh4aCr+oJr+YqxyZNNU86mq3ropi0dda3nsalGVJzL6L04rN3YwhWNtZsKy7XuvMKIdSQTyUFhxNJkQt1UrOryn9WIpc+EBqfGy0VjAAD4B3i1hfK82RpfAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAsCAYAAADxRjE/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0RGQTRDMUNBRDBEMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0RGQTRDMUJBRDBEMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NkYyMkI2RUFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTM3QjhGQUFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhUjao0AAAMcSURBVHja1Jk9bxMxGMdt36UZ08IHQCrMgNQBCRhKaQeEVIkBIfHSXEFigKUjH4FuVAIkBCJpqWAoAx8g4kViKEKlLQML0H6BSgEWXsLZ/A2+4lq+JJd7cWrpH9t3vrtfnnv8+IlDby8fIw5KANVl4/qR14kvZg6AJWwtgu6lMAcWrqp2tVdw5sDK81q/eufN8fpucI8gLbgL6NTgrqBTgbuE7hncNbSM04nBnUOrMgN97hbcOTTghlC9gvYbp2LBXUNL4BfQQe1YR4u7hB5UwIe0Ywvw8QOdfJw5BH5pAa5qk/NRHDjrN2AtqkyhemwDZ30APGcCa+AXUD0xwIMioQ9DawbwNMBmOsTx86gWVXce/TorEFhaeJ927HK3qSlAL8nxytcLcY8IuGIA1xKunLWiJqIN+EpS4CLjdBzww7Q3ZrsNWBY/B+BR6JkG/A06Az3P6gFZWzpQS7MOPJolcNbQgTHBIuDVrF8lywn4K3QiD2ATOsgAWEBNSrwx1O/yCkss5a5PBCxhQ2iLkdJJQcLcgCPoXnd9DGD6kZKBCU5aqyTnwmy7Pl2A39KAf1PClj0xeFSQX+tFJDK+4c9Vo7b5eV07HwL4LROVyZA2m0Wli75lIrYD14E5XGKFkvJpAH8pMin3LX4aB64DS7dYY6R8ipPv28BXRxpbvj/QgPXPySgC3ZCHoRHZRgI/qzI2ef0SdNY2DppNGqcDi49/0oBleQ+Nc/Jjh0uU/HIFwHvR3KOg7imACegmYIeNX+LWcdBwL4uLCa7vScjJNqYsZBTq4eMpLNoMw3Bd7WssQQ01YFwbLI/Le6xEfcg2LlHCZLpKtCchl+Y4H6ZCiL8Nz/PCf16UuIhuQl6nWGxafK7N8wSl1PpwIeet8QVjbhK2Odd17mGCy5/2C7aBXHAe7RBxEW62+M//JLwlq43tsZxH7Y3o7URfBq612Q6IJvh3q77TVSj6Yjpt+Mr73y3D4uIiIsV9F9tTSVNTHdyDnwZIkB70O7QOLicLQ4I0VSJD1/odWgfH9fRDizTvulzGk4JjARG1ot3jjwADABeyHs1FjOevAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Dark Gray - Selected.c6eaab81.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Blue - Selected.caea3f51.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/blue-90rotate-icon.562d5d6c.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Blue - Selected.ac7e17b3.png\";","module.exports = __webpack_public_path__ + \"img/Physicians-background-gray.302c8974.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAZCAYAAAArK+5dAAAACXBIWXMAAAsSAAALEgHS3X78AAABAElEQVRIie2WPUpDQRCAv30+rJcgpEiOYG3lJbbwENYewcILSCKewG49gWAngTQWuYCQVDEbEjAk4ISREZ7hPfDnpfJNMzuzM/MNswu7TkTYp+Qupn0SHnPgFWiZ4w2Y7QQdAO2KAuMS3xFwaOuZAlaFzUsJ/qoY7WLqAi9l1SX4zq7PxdQDzs3cZMDCjDVwW9HpT+S6ELtQwNKMOwl++tfqEvwIeDBzlRXm2K+h+0+5MT1VwAQYSPBPNQLurfG5HvIFkNVYXMe0cTEd67nmEvzyGzm/gXxc91o7L5MG0AAaQAP4F4DSf5GLScEnwKnps4p8fcOf9cEChhL8+5ddYAs90UEY9gzVWAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Close - Pink.313fb2f5.png\";","module.exports = __webpack_public_path__ + \"img/removeimages-green.3952848b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKkAAACkCAMAAADblf7DAAAAZlBMVEVMaXH///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9FN16zAAAAIXRSTlMAQCDAMKBgEPDQ4ICwcJBQ3PTs7/N5dFjy8fbm3fzil1snpponAAAACXBIWXMAABYlAAAWJQFJUiTwAAAH4klEQVR4nM1d15brKBA0ysn23Zz3rv7/J/eMRAckEEGAqbfxWJ5S0110QJ6HAb0QQvSm35YDsawbpldVNtHXSliaAgiZ0K4K2mKd4LkeMLwLYKVBNRyZrutSpFnl2g91PRHVqURv3U06fAV9wzy2K4CaivdOTOwvVgtSfRVDUWLeaNX4s0AfKE0D6o3Vk17o0axjWVRrvvg7nmVS3RdbDXUxlEh1Z3rY7puxQKqa1f9y1gKp7kxP+yfGVTlUd7GfTb8oiOpRTwmlURX7Zqr7VWlUV72jPhjVNj8rHeoLMmVRfZqXH25DG3H5UV1leairRSSBozH6OdXj3vAJdJdUepkDDAVUAZKLKWqawahV/XNcp9+SEyTIct/UlBBy/U/+IT3j10w0KaaMUtTptaqB6iBjcdBeGxV7LIoANFR9j9l8uDIsLwJ2AMaoWxny9TJaixKBVg24zsfGS66tQRp1NL4BtArecWhlZWy7yL/8NL6h4VHVwya7sk7RmKehKW02mA0DftmxfWvt9uw2694wW5SK+lcNBv0g0Cs02pAMkyWoID9Yv/3BbahIQJ64kjvRZF7/Xm1fyt11VF7MksjKYvSicSY4p7rXvJinkoGO78X6s/gh47X5qT7t6/+TxiHBKX7IKAG1Zf2ZOvGXZQf2r3/zUYX1N2ziXJ0USA//Php+nwBy/fX6jw3A0wwA7vA/7LymF1a5/rqkCoVTEzJ4h202qmCd8/6PY0BtJiLvcKG3Jacqo2M9LjAaSy/tEP8dmT451VYnVRT0pmRL3uFQ5aMKpBb2WqVXJwUymMZHPqqQiJK2kzpdCGU/4WXdkIkq1B0gim+jOikQdFmTi+qCPvewqJOCF0hVPqrgqhu1a3VSIC+rucMk3q3g77RWdVLAxbjJ1M2CFf/Fqk7ayxrmtqmp8oMpX3/O0d+4GAPtiyQyCpSaw9kuIFWbGAPVxKk1r5k8uk4gxpuzGBpvsdH86apOCkCMt5sDH0pbsWLQf/NbPDgi1vMPSSirffCBFHDVPcWFxlsyAeiVgPLrOCp5g7KJJECjdhs8LaLkDbADLPbrAoBb4e8/S6p+XbyWXwWpudPW4QlM2sbmYmxyAXXJ52SuquROqN5eH8HyBiXHjgtKSTaLgNP5qTfrtZIaxD0pRuoEnxs2jQbN35Yc1CBmBqhr5yynV1ygTDCkq0bMVXAUxoc2YdNoyBv2DcDW8PImqq/skKrXDgBLvrFzaHj6gIL+eMwrKH+HWOzYD1MUoheH+cKoKnNBuf4xsqrLgimo1FDmgrD+t2dWdJJT7/VBpQaw2zT/ySPsBlFrOyeo1FDmgmNAWJ4/UadOB8whVOH+nkT7lqg69Z3CDqTBRW/at24ElVGdYlBlSX9/N6hQnWobg5AUANKTiRKz0KTap50zBlBtmABIUQ3aqWhQ7+I+fQhVVvWLcKWyq1MEqjPZog1VKuMoLC5VqvrlXuC9/QsndYpAFa5pwL6enQrnZvNtqiAAQ9OHGBUn4FZ1uk+VatwAo/qokwp88svjSkjGRmled6P6qdMBTQBV1KrOz6i+6hSBKlSrrZdR/dUpAlVwt8XDROZBfVKqsI4/MqOKua03LHN3JhOmTvepqq3OtXv08+GpzKVTGFX4+q1GAWbf7iKnPi5avw889xtnlo31MEGArjY6bieumL8aT0UEUvXxISeqWCKBl9zHRtXP2TsbzQ0vzjRKM6sfvaPyTHX8+uIA0b3qE9Uxmk2/2gTeOnemCn7ed/RU7kZvj6g0E4IwqtQMwSeItxmBfOfnvvuAzoL/wy24480a771q8w+ATlzCoUXmQw2rtW2PGaQHOsDfkhZvrDTkEuLjRiWqYEHet9tNvuUF9cnkuVFBuYJNNkamojWXRo0+IHIGJnOztlu538aWkEotSDEgdAEG/9YDPjdW2LO6FfvChuygkddevMvFZgI/E1PQibsN4hDQnBvSxZMWcabwmEH+9aekFMO9WjkzdE75s+D2zwgUfX6uqSVZYszBcV+fiH+aeygVnFCpyTfBZpBmQHyNs4tKTCym4G4owkBy831FT3d2UQnpE8/mIV6ao4twliGXVOEBvPOABotQgpKVJj52o4LaS7oTbadn7VRSFUsFUwNrbn3tfvw6pqP1Uh67UUEuamjYqYXA+W7AdVI/JkL7pzF+WZui1tGpc0QVdXmuRnN9t0zrOtWzfjPCp0gTRhV1I249Pg2qmq5UJQ+8GQ6JT7OyFO92MGgfI4+FyslFXQGSnGBbFeSiMT6uZ4PtuKAWRKQFgw0iMtVjFRIDYWc3LaAUL+bHJjh5r6lCoiA6VW0VEgVxv0nIUIWUR9VYhcRBHY2quQqJg6AjBjpcVCFFUb2uQiIhBlVLFRILIUcMVFirkFgImTBzOFQhRVB1q0Ji4QbVSFWI/9/zpRqtCnFGINWIVUgAVfdFjFuFOAOpOmdWkauQdFSjVyHuwMV0qStSVCHuQGm0x0eVpAoJoGpbUKpCPjWHtT00IZGuCvEAup85cU9ahXhgttFIXIV4ADdI/dKmKpRDcJl0vK7vIzNIgo4ekKUK8QHFzDpzs2aqQrxAW+VEiXy2KsQL4jzVSF8oh6FnJ+7qt1KFFPcPPJ5sBDfUmasQP1T8ICPgUwduLHgeJps5qxBP9OrXzmStQnxRsdl2uf8OacfXF11vylref8LRQAiRQ5sej8f/sWz0YRhWgXAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjQ4OjQ0LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowMTowNy0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowMTowNy0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODRiM2FkZS0xOWI5LTcyNDYtODZiNS0yYjA1YmFmYWMwMmMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTg0YjNhZGUtMTliOS03MjQ2LTg2YjUtMmIwNWJhZmFjMDJjIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTg0YjNhZGUtMTliOS03MjQ2LTg2YjUtMmIwNWJhZmFjMDJjIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxODRiM2FkZS0xOWI5LTcyNDYtODZiNS0yYjA1YmFmYWMwMmMiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6NDg6NDQtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5URnjkAAACzElEQVRYhc2XMW5iMRCGP6I9AOwJ0DvBk7IHSMEBaNJTkZaOlCmTjjZbUW9FvxQcACQukIgTBG7wb+GxnuP4vecHrJRfsh6e8di/x8OM3ZPEBRhaC7EHTpdMCtA7g1gfmAFj4GBEQoztuwCWZ7ECkNSlTSQd7Ns0bihpKWkvqey4BpI6EVtKWknqd7ApbSOdyd1kOvYpOKZHQMBtht0eKHFHWnY4yCxid9Ym1n+37yBzjZPZrnDxmYcMtx4sZkKZJI0abPqSZpHsydpVYuzOYiuWNxFLkfLy/bVibGxHkIvSbBYJ3Ykq5lrRRqwkTexoLR47pDl3bajyXCN+tOj7NfKfUb/EkVq1zHfga6VIos1jp4w5xrgNrHIWzEUbsX6LfozzwgYogC0uxz1fRivPY/0a3YTPtfIIPOCOeU46AQ/JLfAtf9uFpHFCPmsoTYWlk0FCt8otT20DSkmbDqSQ9FfSc0I+lEvWV0mwGLG7zAlfraV0S7XfSjoRG8pl7CYvIWmqzygC3Tjh+YuJYTvNIVcXDoeutl0W8OTKDjazM2w6E/O738vFS9Ni/ugWZ3r5rDs/uMQ6CfLSBpfvSvtucIX8cM7kcN5jJIYnBI7QVXANYv8FN8AIV998ewOmwZhYNwpsiMaN7Pc8sLlPzOPHFtEYP664MSVAD1fnXoDXiJyvgTvTFaRR4GrkM/DLbMJ724Ot0wPWVO+GuOgP4iJ+BH4buXlCt24gFcNfJteZY0NH1N4udgkCA5z72xba2ZgtXzdXhxdir6kqJWEeuQ9kMQY1NjK5708lfUj6UzMPkm6D31tJc+vf1nks9oyPsXfzQvy29N9dYPPb7MLADmMsxiOBh2NiA1NOzb0hfPzdG+ljMNHc+juqIwcXDvGjpQ5rqg2D3PswxFaf34wK+t71hcnerP9mOj/fR0IeY6rqUunX8lyKb51gvyW+LbF/VxuMKPks8MMAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Blue.22639bc0.png\";","module.exports = __webpack_public_path__ + \"img/Users-background-green.fa432079.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAACFUlEQVRYhe2YMU/CUBDH/22qIYShCbiqE9GJSFwYiAwkrPYbMBGcXUnEhO8gYeIb1JXERIwDi9Ew6YeQpIMDg6Hm4FpLbemj0JbB39r33v179+7dvSeZpglRJN24BFADUAJQ8Jk2BjACMDA19V547SAhkm6oAOoAWgCywqoXTAB0APRNTTVCC2EP9FiAvKYIixkLaqzykO/ikm7cAdABHGwgwrJBa+i8prc9t0c4FA8AzjYU4AV55w1A1R0qL0MkohiBCMtekW0sseQRdl1jlYj2aQo3J6lQKp4+v1F5/gJ7pmdq6pVToSWCNmYzIk+4IRtNtjlHwe++oOwQ5vZjivb7VGh4JafgsZzx+tSTdGNI+8X6+3qIM2IbZNm2HYZWTCFxI7NtyBynJLxhkSUNMteOpKkpXMD+YGpqnNpKyooqOody38lxWsZReuvbqaAEjeADyGaTA20VSWSKJ/9C3ATuET/qh/vzo1sEdU8SEjIOyhwvjrabPWOFG11hIVTo/IrdsJzBRU6hIrqukBH90mDdWREwkLmhnSQoYkIarCB3uGuKmxnbttO3n5BXJmx7kb7UIUm6Qb2q7h4ZcfFrWN28nX+8V7oxhYhsdJ0XLq97zQu3/MGnUDjI4KupqefO2V4nUpUGRuSZGa9ddX/wvfvyHae5ZSFd511GSAh25RJO8MQ8gOuQ6U1zaG4+6K1kNx5qAPwAopu7AVqSuo0AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Multiview - Gray.6806a88f.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAZCAYAAAArK+5dAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjQwOjExLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0NjozNS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0NjozNS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4YjlkOTE0ZS05YjBkLWVjNDktYjlmNy03NzdlYzYzMTEwOWUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OGI5ZDkxNGUtOWIwZC1lYzQ5LWI5ZjctNzc3ZWM2MzExMDllIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OGI5ZDkxNGUtOWIwZC1lYzQ5LWI5ZjctNzc3ZWM2MzExMDllIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4YjlkOTE0ZS05YjBkLWVjNDktYjlmNy03NzdlYzYzMTEwOWUiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6NDA6MTEtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7c6RaDAAAA2klEQVRIie3VPUoEQRCG4WfawchEEUz2HEZezHvI+nMCMfIEgpkIJgZeQHSjddAVlA0sg2mZZXA2kJnI+aCp6qqi3qI66CIiDKkSQxKuS7xgJwc+ULWKNrDX0eD5l9guNrNfiYinaHQYEVpnEt1q14qI6Ur+ImGRaUuc/XkZjY5W/EXCe76cY94D4AFX2f9Mmj0e99D8RyfZzhNmuMVNj4BL9eCvRURsIeGto3iCx45csQayjWWpeYO+VVFPPqhGwAgYASPgXwDKNeB9HGTbpVPcqz+sO3y1C74BSwl8BS+6Z78AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzcyN0U5QkNBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzcyN0U5QkRBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MzdEMTBBN0FEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3MzdEMTBBOEFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjCO7zwAAAVQSURBVHjazFlfbBRFHJ6ZbU0jhtJifONfNeHNa4OJcoT2CmpiFBseND7ZghXftOALL+1BjaIxkfpoSOmdr5iY1qiJEnMW76oPWjDxSTl6JkZCEHpRC3J3O36/3Tn43bK9fyzL/ZLpdW/mdr795pv5/VmZTqfFHVivLcSgFCKG1onrAe8ALcS8FjKPz1RBy1SHtH/i/dFotO7J2poAuBltxLRNqsZgPES/JMhC7LGk85lDS9zQMnmf1BcamVg1MHYdTYJGE8QJaJOrQb+LA2gWq5LMZDLrggY7hraENuzTN4t2tCTkLrDV45LpNrqm7wFqEpzO+Uz+Mt33u0zmYD0gZA3Nltkc8nyfs4U8qoT+FP8v18vMP9rqgmb3WkLH8TQbfR56BBpeboZZApryAM0D5H7SLYDONAKU7AFZutom9EkA3QTWR8F2nnXTPKlqslA1gEbYrp4DM1sMyDs2aHb6X9wPMplzb++0SDXAqh6guOFbYGOImBEBGt1vZ3T70DWt3salXQuwH9gEB1oU8hVobELcRdu944lxrNprznQu6IjBURXsGNcoGJ0kjYkQ7Okdj08D8DFQWzCAh7ynhPIs/xGm0VnatSJEA+D4da2+0IZhgItzOXCwU8J1mWTL0vVQodv5YscoTpyrRhJrQfGHXrCb2YGvMfhgo8dSUHZgoPfKxVL7uHalUCLHkUovbOFgOYs5HE8JcQ/thZ2PnbihVc4Ati0p9vmCJc8kWsD+tNuPG7Aa5A2XwfayoMRe0Wo2LEBwrV/atv1HoVB409t3udT2iXMgARP2z4b5zEIfgY1xLxX0wV/NsNOfUUq9YVlWn7fv9Vjkr79t6xttvBsAD3KwGg7g5zCXGsx24eMYmq/TgTv+xURw+KMjypyvjq3Y6kzI0ryC9rCU8h2/TkgyVXbD0gmeWCryn1AXwkQKGRBrCmBf8utHZJa9xazor0hrHlKF83UsHWnoFJ0waKTvw3Q8om2j/wHgvUbGVbPRgb5f0+4DyUbTGm6ktW4D5iM0mvgptHcBsqeJcYHnYNxOgRli60eznHR92vQ92cS4Gjnn7czK34odW0UL2cn5xa3SAHXAUl7PguF6lqYUEBZZM5sQ9iPlsYRT8YBljbIHat0AHqeotc6ay6zPkKzP/xXj8Hu6T7ZmJqHsXWz1lym7pYD7OF0VtPy8XernQnYMq/Z9lf7ha6z2bmIWh+0hZfItxwD02Ut2e3cr6HVmfvHBMlATYKUI7FlT0nHTBVnc2wpg16vCi2Wg0Ovv/dHti8pFLZKM3YlWANutSodZgJW4eXQVtUywLbqx6BYy7pmdTn//KmLYDcwZzNwES9U8sPvxrdKi/oAHOGEaNlXX/dJ+n32VxCZcqnAKK9qiU6Fczun0y9vDsDWylGCJa96UByrdLQXdVCfgtSewHWqKcyazMAkZPs++OsILdRWxgYXlxxHxGeucECGl5Ehb9mP+cV5VBNCpqoEMAt5h7D6eMczw4sfdYhT7ZJp9dc6PJN/6LNVRoZ0UluRRnp9Jt7YQWD2B5sFmSmLn7/EAjfnVadVq1T3kPzHOsNHSEmSyLwig17UaBSFL9QKtGs+WAXMN0y5VbqHOAU3MNAKQXDmBBAm5DmmfAAFruUarAV1VBrfHhPKQKXt2evtIHmhnNXz3Na1yeMgsW+YeaJEK0IOWFBHcwy9IyptdP1Uzpqz3PZirr9KUeWkRlJGbH6vGZlNpDckCg4fpDQy9feHBT4NGv6Pzm4ptI/UCdT1rg2ZetFHdNo4Yog9LTG8XY07AhnTZ5yffuhoX5yjMgywWm12G/wUYALV2JYoSEoPBAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Download - Medium Gray - Selected.bc6601b9.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODkzN0I5MDFBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODkzN0I5MDJBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4OTM3QjhGRkFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTM3QjkwMEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt7mLx8AAAISSURBVHjavJUvSMNBFMd/+wMaFgwGg0FQmGBZEBQUXNuCwTDQMMGm4ILBIGgwGASDCtoMExcWjAuLig422GBhgksaXVswKEzm9+R78Di23emGDz7s7n6/3ff33rv3zndRXPA6WAwkQRSMc60FaiAHLkBDLW7PPXou5jfmk+AB5Ck0Lp4FQQQcgFewDwKeo0kh5VoZLIq1Z5ABaXryzvVhcASyl6VFJ7Gg8ERtNMJ5EaRAxXh/CGxRJAQS/Ih1V4/SQiRLr7TIKXgBM+ATnINZ8MbnSXi16iIUE+EqMjdf4h2VlwkwKtbq9KbF+aGLUFLMU4ZILyvQe2XT8GrBJhQVia94v7O0GM/bDoM+wmWRk4gROmVnoCnW98R/frxyOXWeiPcKc2JaxJirjUtd9uoo1OKvTvaykfgziuyAqlivsSy0NW1CNW4UZZ08Ge/oDZTIvfEsIcZV22HIcRxiMbqa6gi7Iux5m5BqkB+cq4oPOwodgymOM2iuDZtQgwLaqzswZ5yuDYZYe3IivPFs3sgWpL7uluMxoHr/DVhifV2zRW1ScNfY58pWsD5xHwVYgEnvb6Y6exwhLNiuiS924TV60c1a/KC4aKw67Plunvm63LD6fppnYQZ5zKvMh058mDkds3nWS8jVnMT8/apgszqLvWcY+xZyFRuIkE1soEI9xHIDF+ogltV16Wu3295/2LcAAwC2QJOXuaPLqAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAnCAYAAAAW7IaoAAAACXBIWXMAAC4jAAAuIwF4pT92AAAFV0lEQVRogeVb/3HaMBj97Mv/TicIG4RO0GQCe4OQCUomKJkgZIKQCYImKJmgsAFM0GgC90SeqDH68clYtnt9d75cwFiS3/dLT1JSliWdi0TISyIaE5H+W8cW17rMs4+zG+wYiZAjIhpVxljHiog+yjxbt9GzRqSAhIKIbnBdBfx8R0RLNZAyz5bBjXcAkFDg+hbY4jvGtyzzbNukt0GkJEIqAiZEdNekMQMUQQsimg/BgxIh1dimRHTd0iM3GNsiqB8cUmA5iwZWw4VUne+LnETIAu2HeHwIlPFNuZHBS0oi5IyIfkTqbB2q85Myz1ZdNIYwvIxobHW8Y3zOsGYlBR1eBbqycleTpY8CrfC5zLNpwP3BQChWhGTM3ypvtiXyEFIliLF6jZGURMgxwpWPEJ0TVj7rBsm6MCgYJCmrKmKEM+SOF8atolKUuK37M8TrseWMZ9/bcs0JKXj42mNB6oXNzgkzeDEzDzk7ENNKqYl2F55CRee3RePq6dMAp7hc79FIzBEpjJC1QcJqLeaDnLmj8153Z7bDCccC42tEhqVNZXjfHbedEFMnZelwvVd0OEY4GSFMuF7YY5lns4bPH+P5Nq+UGFtQ6RrQvi9/fa1GgwMpKAvfLD+yxr82wQgtwYaBcS0cL6T1EGnpxxieaurHpsyzgxKS0l83s730hy4IUSjzTIWye8ctirAV+usFyvk3ByEqN45jE0KfY1ujEJCGr68RxvdI8deWkF7LPJvH6+opYAC3ls4TQpyzT4o0eJ1rfqXGdtPlZBXEFJavD6FZkzIx3CRBVudAIXGDwsKEka1PlYTuCoP38Mq+xvZs+OoKuYdSxDpTAoyS1LmouLsw/MTYL4xl6ygYlKHddhWOHZhZIsHei1KHO/Wu4CqjKPOsqFnWrurqGojJvxz5Y4P80YmE4wKM3fR+Pz3Fsv4hhrTuAcnlC0rHUT0xJ0LOPTN05W03bc0/WoLJW/cefmFZtIlejYQCRlInQ1eNLlkjuo7WBMpjE3EawVReubAkzSFZlBHMCWcn86u2YfOUQZPCmCFLhKvBeTwHqSVUWUvOvoGE/tOT0E/yzr+E1NLXQZKCCaErob/CQwa/OQPluxEXmGjVF2kKU9nZF5grhCeCZUVC/4AUPySyjKSoAsAWvq6RSHsHLGrtIEQioZsI2UJqeSKi34mQQ6rCTIrCXsFI4Skm9O4pUHhXDsl9h3BlqrAKQ955QgjsFShUTEa25yKFS5ukjDutxfQBWLVL4d14FF6bkqzGteYqzZFgE1T3n6fVfwxYdN35isL75LhNKbxjT45YeJTmtSvZxgLUB9PcSmjFYU8K9KB3w41XIesX54Kp8D5wFF4Q5lKa9dg6U4vRlm1p+JDvUtOHNVx3QUyAwste36kozSaDI4TGFyyGRQXasJXzj1Vdrr5GP3WEDYll09ZVVk+7BGufnDMhRNhwbWCIsqWJoc8dLQWTZYsRZ5181obiikLCFmM1WntZjP1eEmNrZbWVsVNnh2LlaGy2zXg+YgjkzJtYL0rdKWNnYesKr2cDg4beZBi89wueoTeKu/a0WfU517ZVDjGEAawwwVPX9ig+Hp/t0DskOVtFoym8TIVZY4N711AGDmdsDOdyioBnWsOxc4M3w/1ioKstP5cYW1vHOrgQIMQajjm77mMfg6hCLfvOutSoOjgGocHe8Mc+NISkPItEjgAZvcjtFeFyEoGc4LM3wcfrKqe5TNpSCPQxu/mQ1s4Rsrk7513YgIxlqOefdRAVBOnLdwblHYlyhaMFg16Eqhzd0AXKpWdiqwsdPb7GIbiV08H/I1SujeLhRPQHO9q8m2qpSsAAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Green - Selected.c75c3d11.png\";","module.exports = __webpack_public_path__ + \"img/Proofsheet - Green.711f3f9a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAYCAYAAAAlBadpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUQ4MDBCQTRBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUQ4MDBCQTVBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRDgwMEJBMkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRDgwMEJBM0FEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pj6PIUwAAADZSURBVHjaYjx69KgBAwMDCC9gIBEwAbEAEM8H4gRyNMMAyIAGcjWDQD0pzmfCIhZPrAFMOMSJMoAJjxzIgAvQACVZMwjoA/EBXAYwEeE1nAYwERmwMAMMyNGM1QAmEhMVP7IBpGpGMYCFBE0foVEHAh+AOIAYzQtxZRpczp6IxA4gJZ4TgbgAiB8i+bGAGM2JSGkaOXsSdHYiWmbYAA0kEJDHZgATNOQCseQikPgEJH4DNs0XoLZgA8gGgmx3ICV5PoBGFVbbiUlhyLYrkKr5ADTeE9E1AwQYAMGWJ2AdCvhrAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIYAAACGCAYAAAAYefKRAAAACXBIWXMAAC4jAAAuIwF4pT92AAAH2klEQVR4nO2dTW4bNxTHOWpQBEYBzaJ7admurB6gsHqCaE4Q+wa6Qd0b6AaRTzDyDST0ALZW7VLquosRUARB0HoKym/kscz5Jodf/x8wyCKO+fXP4+PjIxmkacpcJ4iTMWMs/3GmNZu9pj8TxtgjY2yXRuHO+T5zTRhBnPABn+S+S0VFbUkoxy+NwnWNf2MN1gsjiBM++DOyAFeaq7MhC7NKo/BRc106YaUwgjiZkRj4NzSgSiIOXCAkkpV51SvHGmGQZZgbLoYiMpEsbLEkxgsjiJNrEoQqX6FvtiSQpcmVNFIYQZyEJAYuipEBVVIBtyILEkliWuWMEkZOEHMLp4u2GCkQY4RBU8bCI0GcwwVym0bhwoTKaBcGxR2WDk8ZTdnzKVR3XESbMGja4IL4oKUC5nNPAtEyvQx0FEpxiB1EUQrvmx31Ve/0ajFgJVrTu/XoTRgUoFrBl2gN9z1mfQXIeplKaMXxAFF0gvfdA/WlcpRbjCBO+NTxsY/GeMRdGoVKBaJMGORPrAzY8XSVDU0tSvwOJcIgUawd2t8wFb7vMlUhDuk+BjmZEEU/8D5eU59LRarFyInC17C2Lg5kOaStWKRZDIhCK0PZlkOKxTj3KdY/fyejbr0x/f0fq+pbgjSfo7MwRI5mGoVd69UrQWxcOkQXpIhDxlSygqNpFJc0Jp3oJAwKXiFOYR5XNDataT2VUGj2k+jvpt+/s6oX13//a0AtlHDTNre0lTDI+33Q0VLQmJ/aLGMbTyW5UDewgxWNmVphIA3POkY0Zo1oNJVQNlFc9XO3P77X0nnvBwH78qQnVVFn2bd/fKnzY1GTE3G1hUHmaFcnsqkrjrH//MRGF1qyFbWWXTMOw8Pm47rxjSYtWSLcbTXDJlNKLWFQij/yNO3nA41lJXUDDp2CJdzM7j4/Se/V8cWg0nxvFMUoripiNTrbXMGSvVweU0ilMII4mXddhSz/+lrXQWoEd3J//aHc0VW1QVblR+lscwUjHpysCnyVSo8cztsutQBGsqiKbVTZJJ8OF/vEkMa2kEJh5E6eAzeZl1mNMosBa+E2pVajShjAbQrPpgiFQVvqsBbuMyo62VZkMWAt/EE41m+EQbkWSNXzh0tRdrnIYsBa+MebMRcJQ8tFHUArb8b8lTAo3wJOp38Mz2/uObcYsBb+AmEAIWJhkGeKacRfhvnVSd5iwFqAkwbywqj74g9wl5MG8sLAUUNw0sBRGHXzAIH7ZFrILIb0q3qAtUwgDCDiqIUsGVipMHhms4oT8OMa2dK6Tt7rbHNHjlo4nkQL4kTq2TqcROsX2TcCpVEYDOixWgBOcE0M6hw+Ad5xFAYcT3DOmHtH0h2CXzRdj3jxTcA+/6fnKgKdZStgrMRld/hOK28YYI8ECJjoWV8B0wkhDCAEwgBCIAwgRMmqBJfM2w8sBhACYQAhEAYQosTH0BUSB9JI3tHrRFITgRESt55HTCVAyIDuBwcgzw7CACIgDCBkpyQZWNe7q1+fGPtWk9eks2zZ12LzZOBsubqVee9W1QXsqvA1S1wyXAunAJe0N8GB9TxCGEDEUQuZzVcqDP5miIqgFz/pVTVt/fan/KchOFVPQ+hsc0dehJFG4Vrl1jPvIFVvd1R1kopyWQ1h6GxzF7gW2Nkm2kZZacAWThrIC2ON4fOekwbywsDry+CkgZMw6P3vg/dd4y+H/Bvw5xEZWA1/eTX2EAbIKBYGvf2N6cQ/DufvvouC+7Aa/vHmDVaRMBa+95KHVAuDPNOt7z3lEdv8aiSjaJ8YVsMfhGMtFAa9+733vcc8YF/0xntZZknpo/DACQrHuEwYCyxdneZQ5jIUCiONwgS+htMsaIyFVCUpwmq4Sam1YFXCIEXhHVb3mJdZC1bntDtWKM5RuBLJUzffXfgwPLCSWmNZSxiUB3gPHVjPfZbTWUWTrNJrOs7Y+AlOntnMk1hlU+c9EBXl1kFnmws4NLH8xyOKtX/4+ZnnuOrn8F5Jv9TM8I/Ot9bLaNQS+sWYUuzjvokoWMs7uK6xSrGKfZvFQ2Nh0PoXrzrbw6wqZiGikY+RJ4gTrsJPbvep9dzUiVmIaO0tUYF3vvSwhdy1FQXrYjFOvyBOpN/6BzqzSaOw0zs0MtZXM6QCGsVWhg/YWRjk2EwhDiPgYzBt42yeIyUiQxW5xha9Vo6RTRmiYDLvEqdM4ynEoYUDWQppF+BIjeHmxIFppT+2skXBZKxKhL80TkK6a0HaTYBAiDSf4hwluz45hxS39Khjo0oUTJXFeFVAnPAgy0elhfgHD14pTZ5Svk9MDbhRXY5H3KgWBevDYpwKipMJnaQf9VKge+xpQ6yXO1l7yyyhBk2Qz9EK3meTvkTB+rQYrwp9zgRbtkkT9IwsaNX7nSVactGooWNYj1J434x1iILpshivKhAnU7Ie8D2e2ZOV0HrvqnZhZFDiz8Lj6eVAJ8SMuGXAGGGwl4jpnD5fBJKdIy09ZNw3RgkjIyeQa4enmD1NoUYJIsNIYeShKWbu0L7LlsRg9MU0xgsjgwJkc8pOsm2aOVBwb9FnLKIL1ggjD8VBZoaLJBPDSteSswtWCiMPWZIZ7ebqTkreULrByhbLUIT1wjiH4iKT3KfKN9nSM1HHT3fcQTbOCUNEECdjirRmHyPhVJ2+5quF7H8+P+l//NIodPsRY8bY/xLHCwu/F0pqAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDI6MjctMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDI6MjctMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MGMzMDFmNjktYjI0Ni00MDQxLTgwMjUtOGU5ODA2NjRiNDZmIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NGVlMGZlOTgtOGM0MS0xNjQxLWI2ZjctNWI4OTE2MWNmZTJkIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ODZkMjRiNTMtOTY3Ni00NzQyLTlkM2UtNzZlYTkyMjEzMDIxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NmQyNGI1My05Njc2LTQ3NDItOWQzZS03NmVhOTIyMTMwMjEiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjBjMzAxZjY5LWIyNDYtNDA0MS04MDI1LThlOTgwNjY0YjQ2ZiIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0MjoyNy0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6TONW2AAAIJ0lEQVR42u3d23HcRhBA0UVH4NSUqFNzCKMvV8kuUcSSwKAf51ThV8TOYO42l5QUr7//ebnGXuublzV0uW684kVn65Mr+58Powl07xC7LxBoHg6f+weBRtC8PhBoJgdLrEGghcmagEBzLkJYJxBok6G1A4HGFGg9QaCFxPpaBgQa4bDeINBCgfVHoBEG+wEC3TwG2BsQaFMa9gmBxoG3byDQvmXGHoJAm74QaQTaYcabLgi0OGOPEWjTFfYbBNpEhb1HoHFA8Qwg0A7ms46LL88CCLQDeVGI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\"","module.exports = __webpack_public_path__ + \"img/Users-background.8af29f44.svg\";","module.exports = __webpack_public_path__ + \"img/Close - Gray - Selected.98b4c309.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAB2CAYAAAAJHju1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzI3MTYxMEFBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzI3MTYxMEJBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMjcxNjEwOEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDMjcxNjEwOUFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgyiH7UAAATtSURBVHja7J1diFVVGIbX+BP9ICIaGdZFQaJglAWNhcRYYRfJoEIqXZhiJTVFRAZBQRfVhSJW1IiZiiaipkOJZt2kCJqMRiqVdZupEZlRokKZp/drrT1sYS7Oz/5Zp/088HKYi7PPOft7Zq2191577Y5areYAEoawCwAhACEAIQAhACEAIQAhoCCGtbqB3v6p7MXWGK98leP2z/V07h9XmBDQMsOVETluv6Ft02WUzz85b/8cQgCDSkAIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACACEAIQAhACESPO6cg9lRoirlU3Kq0oHZa6f/+N9GVOUbcpN4e+zlLm6LcQS5WBKBmMoZa5mC9GrPENJEeJmZYtyH+Wky5itfIMMCGG8rfQpIyljtbuM0eGQ8mHKRwsxLXQRyIAQ7jllj3IjZat2l2FnGtcqCykXQtyhbFYmUiq6jKeUo8iAEMa7yvuUhy5jjPMXprooDS3EDOU4MiCEsUzZqVxPSardZdhElq1Kd4VrENUjjcpsIe4NXUR3xf8pLyKEP6T8UrmFRvq/y/eVFoJDyiuZX9UxxCRlo3InDgxgl+4XVFGIx5y/ZA1Xsku5qmpdxpvIMCirleieLZFnCzHK+bmO00v+jT9Ets8fUF5T7o/R0ryEeFDZoIyL4De+p5yJ4Hvc4PxZ2AkxN1t5CPGG8kpEv7Gn4l3T0LKEuCaMFWYxPIiKS2UIYYeUO5Rb2f/Rcbrooww763gMGaLlZGFC9PZPXe78WUfWmYiX47l3GRLBWoPtymT2d/R8kmsLIRns9rlvkaEt+EM5kJsQksHOOvaFIwqIn209nfv/yrzLkAjXhkPKmezjtmJlo28YUocMXc6f/kWG9uKwWocjmQohGZbqZa+LbBIH1H06wGXdQpxkv7Yla9Q6HM1cCG3UZjfZ0+uPsY/bhvPK882+uaNWq2/Sr7oPmx09h/0dPd36R97Z7JvrPuzUh8x1frILxMs7rcjQUAuRaike0stHzk+AgYgOMSVDy5f6GxYiSDFWLx87v0golM9WyTAviw01JURKDJsVNZ96lEqvZHg2q421dJVSX+Rx59eThnJ4OUsZWhYiYAPNR5XfqE9h2PLNNmN7adYbzmoeg10KnxC+KOTHL4q1yrZQ64E8PiDLiS1nwhddR90y5zvFuobblA/z/KA8Zl0vcn4tybeoY9NcVr5XPlN2O389qRDyui/Dlh22K6R2o07ZSw9bN3YhcgFOhNiElh+VfuVUGV8kzzu3PlduD+OLMh9z9IjyO41O8WOIwfhJ6VQ+KPE3jqbM8QiRYNfmXyjpNw6jzPEJkYwr7EbXnwv+jX9T5jiFcGG0bOOKIwV+Js/TiFgIw85o3qWsL+jzWOowciESbHX7xQV8ziXK3B5CGKvDUQiHhQgxwCHnFyI7RDkQIuFEaCk2UBKESLNAeZqyIESaVc5PzWN+BUIMYBd37Ek6+ygRQiT86vyqbasoE0KksTHFk5QKIdKscf46yGlKhhAJe8O44lPKhhAJfzr/bK4VlA4h0rzIuAIhBhtX2L0JZykjQiTYvQm2ii7nKxBiAJuB1aUsp5wIkeYl5QlKihBp1ip3Oz/bO+EyZa6uEMbXzs/b/CL8fR1lrrYQht0BZSvd9CFEY7S0YAjQQgBCAEIAQgAgBCAEIAQgBDTLvwIMAA2g0xmCK2hBAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/printbutton-green.ff9dd604.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAACHCAYAAAC/I3MxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDE3OTE0ODdBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDE3OTE0ODhBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTc5MTQ4NUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMTc5MTQ4NkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpUgVGIAAAcZSURBVHja7N3d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\"","module.exports = __webpack_public_path__ + \"img/requestsupport-blue.ec478011.svg\";","module.exports = __webpack_public_path__ + \"img/Patients-background.971d4c39.svg\";","module.exports = __webpack_public_path__ + \"img/Microphone - Green - Selected.e3af008e.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Blue - Selected.0125c1cf.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAB2CAYAAAAJHju1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERFRjE5Q0RBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERFRjE5Q0VBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEREVGMTlDQkFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEREVGMTlDQ0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiNHVbUAAATQSURBVHja7J1daFdlHMefpUYmITJDZHZhUExJ0gRfhsQqy4tipCBaFzoxjXxBRQNBwYvyYhFlWDGni1aIrwPF3i7U0cWmTXGOdApeOddU1ImODGzt7+/n85w//8GIvZyX57/z+cD3YsjO/v/z+3ie55zn5RRkMhkDEPAEpwAQAhACEAIQAhACEAIQAmJi+P/9Y0NDA2coel6UnI3w+J0lJSVFoQgBsTBC8kyEx+/XsWkykue/iI/fiRBApxIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACEAIAIQAhACEAIXL5RDKDMiPEU5K9kq2SAsrcd4biuoxZkkOSCe7nDsqc3ivEJsmpHBmUYZQ5nVeIbySrKClCPCfZLymhnDQZCyR/IgNCKDsktZLRlDHdTUahu6WcR/m4QrzmmghkQAizVnJSMp6ypbvJ0CeN1ZJllAshXpbsk0yiVDQZKyXnkQEhlJ2SXZSHJmOssQNTpZSGK8Q7khZkQAjlM8kxybOUJN1Nhk5kOSApS3ENvHqlUZJXiNmuiShL+X/KfxDC3lLqvskTuUg/Hr5PtRDcUvZkSVr7EC9JfpRMxYEsOnRfnkYh3jd2yBp68pPkybQ1GduRoVeqJHPSdNs5xti5jm8l/B0ve3bOX5dsk7zqo6VRCfGGpEZS5MF3/Fpy24PPMc7Yp7DFPl+2ohDiU8kWj77j6pQ3TcOSEmKk6yvMp3vgFV1JCKG3lEclz3P+vaM97rsMferYjAze0hanEJ8b+9SRfSb8pSWOJkOvBocl0zjf3nMk6iuELp+7gAx5wT1JfZRC6FPHWndHAf6j0xEfRtFkPO1uKd/lHOcV3/b3F/pyhSg19vEvMuQXZyRNYQtRIakznk3igD4/DjBhC9HGec1L9hi7yCl0IXR2k769vplznDf8LVk30F/uSx/iirGznA5yrvOC9yQPohQiYJG77QR/+crY9S0mDiEU3Qj0Tcldzr2Xt5jrB3uQgTypPC6ZLDlNDbxBFzuFMu9joINSN4xdaPMDtUgc3Z9zcVgHG+wo5VLXjEAybJasCfOAYQxba0dzoeQO9YkN3b5ZZ2xXhH3gsOYx6FB4sfugEB033VVZN2qtj+IPhDmx5bb7oN9Rt9C56JqGF6Lut0Ux63q5sXtJfkkdB0y35JLkV8kvxo4nxUJU6zJ022EdIdWFOklvPazN2APPBWh10QktVyV/SP5K4oNEuXLrN8kU179I8jVHbxsepCXSh+iNa5KZkt0JfsdCyuyPEAE6Nr8hoe84nDL7J0TQr9CFrtdj/o7/UmY/hTCut6z9iqYY/ybv0/BYCEWfaL4i+T6mv8dWh54LEaC7238Yw9/posz5IYRS5e5CuC1EiCyNxk7Ra6QcCBHQ6q4UNZQEIXIpl3xEWRAil0pj39/N/AqEyKKDO/omnd8pEUIE3DJ2XWklZUKIXLRPsYJSIUQuulZRx0HaKRlCBNS5fsXPlA0hAu4b+26uLygdQuSykX4FQvTWr9C1CR2UESECdG2C7qLL8wqEyKIzsEqN3UQVECLLx5IPKClC5FItmW7sbO+AbsqcXiGUc8bO2zzhfh5FmdMthKIroOYau+suQvSDgkwmw1mAIX+FAIQAhACEAIQAhACEAIQA/3gkwACpOqfv+IrsDQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Blue - Selected.a0af0144.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAQCAYAAADj5tSrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0UwNDdFRThBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0UwNDdFRTlBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3RTA0N0VFNkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3RTA0N0VFN0FEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm/FIssAAAD7SURBVHjarFTBDYMwDCwRf9ig2QA2aEfICB2hnQA2KCN0hHaDfHiXDcoI6Qa1pYuELAIpAekExOC7ix1nfd8fdrxqwpnQTRfVjgQt4UGwMrAHCSsfJk4G+UGekLyEeia5zCVPdeLVu5D6JSesTi/8VGLfa6i3MYpUYAtGghExg/URJDbWtnTik2u0ocG9w5r5J/laTTwZO3tvUR9DopGQC/zCs9vahipwqD6EE4rLuKYcJCVGAndVg3d28ISDAa6SSPxI4Bp8CTfRXTbVSYvtqAhHQkG4Q307aYTNTnIkKGZiFdDAnRNE0p0LHGKbRYx6DayN+DIQcz8BBgDSmzqODnV5PAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/returnToAdmin-icon-green.6a9098fe.svg\";","module.exports = __webpack_public_path__ + \"img/Microphone - Green.8018a51e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAAjCAYAAAAJ+yOQAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjQ0OjEwLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowMDowOS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowMDowOS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmNzBlYzk3ZS1jNGVhLWIwNDQtOTQ0YS0yMTZhMWUyOTk0ODMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZjcwZWM5N2UtYzRlYS1iMDQ0LTk0NGEtMjE2YTFlMjk5NDgzIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjcwZWM5N2UtYzRlYS1iMDQ0LTk0NGEtMjE2YTFlMjk5NDgzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNzBlYzk3ZS1jNGVhLWIwNDQtOTQ0YS0yMTZhMWUyOTk0ODMiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6NDQ6MTAtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6srTEmAAAC9klEQVRYhdVXMW7bQBAc+QVUXkDwBQScB7DQA9ioZ6W07pRSpd2xjSvVqfwAF3yABOgDMviCiD+YFLdnrVdHUiJpBxlgIfNudzi3u7w7z0iiA7GYRwPg0BXQA8sH4Wu6gmYtIgsAGyHQomIAGYAtgLKPXBABeACQA6hxuchcfkvhvQRJbTHJA8mSZGTmtBUka5JZh4/2K3r8YpJbeXdq5/VDdOWL7YLylvktyZeexVpLRcMHodrhcINAu7DYjG9E5C1cmvNDRnVZyoGkuRGUkawGctmMRlrkIZCNW+ygyhrK7BDbiOFOvthGvryheJGvNANQjeTyKIXzXWQ1krASnhxO8BRo4Lar9G4iQo8U04kE3OLzqUVGE/PVgCt3DZeBMUiFpxnJE4QWGY3gKeBKM4ajFb7cJdz5OgQZ3EJruExGYwQZxAAavS/VDJybN544JduPySH2QjIN7fLXCo1kEy8Mx9jTxlssei5uQam8+KGHIAsI9Fbx9jtAyLaeP3SfjHC+/1Vijeq/HG6T3SB8ssRwe2WG4V97LhoyoP3S65F5R8EBH0W3oVAv6fO1SOEWmb7HTtjk1gq2XGI77CEU85kidY9ve8Tm0sslA5fkvnJPhRyuBWIpYQXX+6n8VnB7dR0K/iqRGhHOx3B1TcC/EHkz/LG4AEBlRwAr5WfnFioGxm8hf69VzDLA430T4+P9EivSD8wAfAPwBOCXEfpD5vYylyCMBMA9gEcA3yXmZHhmYq8A5jL+aHj8OEL3yROAZxG6Dsy9dggMcfmYa3xXoYmuS+8+IGYOV6K+l+7FZ4fLhbbhCZfZdJC9aEUHvT8t1ZjFvCWGMq55/5D83cIDkvfq7x3JtTzfe56uTNqM+Z58k+y8yfjc/O5VzLPE6Y9C96TFTwQyHxI5F8cVXAk0fL8uZQEnRbqW5z3ObQG4ljnhOrzivPgzJKULU4adjOky+mdfnkTGjvJ8VCVaSJntuMVKeHTbeC0Jv/hYHIWp/6X9FPwXIv8CArWgZDi+83MAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/blue-Return to Single View - Icon.4bc54b0d.jpg\";","module.exports = __webpack_public_path__ + \"img/Physician - Drak Gray.a501b64c.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - Light Gray.e8a1aafb.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAACXBIWXMAAAsSAAALEgHS3X78AAAA70lEQVRIie1V7Q2DIBB9NP4vIzhCNygrMIGO4AaNm+gErsAIdYOOQCegIV5SQoEjNv5q3y/j3b0H94VwzoGDWKwCoCI347Q0XGzDsm/w5LfEf1bgVCmwG3+BHxBItin1fYg24dbGfqm5yM1BD6BjDtdFPnNqLnIpGgCsjECIlWI+kF0VYrESwAPAmSF/+nQ5LW3KmC0yBSgiKJGrHHlRgETuuasTBvLJgm1Tp+UEYEyYRrIVUbWusdVkCrpmdlr2NXG16xqUqkvwXXew2hvg3VkoFfUrgT1oxGJ7mtwjMPka+D1zPUjAeAH2Xd0NwLwAcfhIGfzKI/sAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/rgb-normal-icon.3dfbacf2.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Green.0a71e625.png\";","module.exports = __webpack_public_path__ + \"img/Users.d82b2c1f.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAAB8klEQVRIid2Wz0sWQRjHP2Pi4S1iQqUO0UUkEDyI4iGxVIjOE95VIgilf0Cog4JXIYIOgrwHEW8DYYc8eTBKSAjq4FXETlID5W9yYmRG1nV3283Vg1942X2fZ57nMzv77DMjrLVchGqTGEKbu8AUcA+4UmAeP4E3wAur5GHUcQoktHG2d0CTD9wrALoBjAKbwGQmCGjzkA/A/fjMsiS06QSWgf44qCYhruKv60UgXmuxHJmgc9HlAx0Xg9DmNvAIaPWmZqHNSMF81/21wcd+B+atkgdHH6zQpg94C1wt7xmO9XngTl1vWLpXJUI+AuP+aZw6gGcB1FISZN8tv1XyJTAcsbcEkCgJ5NpVg7+/FbGLxF53RtCy0OYL8CDqKBvk1Ag8jBuzQAu+QRZRPfA+aXwW6IdVcqUIRWhzM80XQFtp5S20GQImcnCaMnxbATQHPEkZVIlVUJrSKtftAHMB9NxvcI+Ba/4X5HbamZQkv62Sf8IfoU2Ic7ZfwAYwVm2vLB2BrJI7gOtNI0IbV5aLkWRPgdcpIPfVJ73Hr1bJtqghT3m77Xw1xbebIz4fyCo5C8zmzBfe06mjVRJo3Q/sFtooYDsnxKknkuPkDJLOdUKbKjBQABCVW85eq+Snf4IGV7Zds3Wgrv84101X2yvfTliBv4k7fR7gL9XYAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Proofsheet - Blue - Selected.5eb78d49.png\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Gray.f2ff5730.png\";","module.exports = __webpack_public_path__ + \"img/Microphone - White.296fd988.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAZCAYAAAArK+5dAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzI3MTYxMDJBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzI3MTYxMDNBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4OTM3QjkwM0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTM3QjkwNEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsoZtRkAAADaSURBVHjaYvz//z8DLQHL1JM2tLThIAuQeAfEQlCB70D8Hk0RMxCL4zDgGRYxESBmg7Lfgyz4gSTZDMTtaBpkgPgxDguks82PoAgAQ2QakMqEcn8zAYnPUM4vIJ5FhWCZgsT+DLLgC5SzAojfUmo60EfXgNQ+KPcHE1I4Tqdi5M6A0m9BFjwH4lNAfIKKFmyAOvwjyIJiIHalZtoEBtNvIKUD8gkLUhwwUNkScHJnYqAxGLVg1IJRC0YtGBEWsOCx2AyIbaA0LjATWMlfglZYZ4FF9D90BQABBgCvAzTzIyLqlwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Physician - Green - Selected.11f2515e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsSAAALEgHS3X78AAAA5UlEQVRIie2W4Q3CIBCFvzP9LyM4ghvoBtoJdAQ3qG7gCE4gdQOdQEfQCcQJMNekplGKTWz/mL6EEHLHexwcHML+PgK0hXD1qbnW2AqIdbH5LgGWQFbjcADmMQFgDSxqbKekMtgEHHZfyEuBUJTFonWL1CHzqZEGZI0h1nmNYNAmaQj/I/DogPumaYr3Hr0L2rfZSk4pBh2iz6Je4HckYp3R99yn5tImsVg31ldWI1gB5w4WfwTyLrdoSJ+mTfCqyWKdHso7tj41eYxIrNNPgX4cNBs/UC36k4Bdi3lUAJgCs6AFeALOmnQDMB8LegAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAACXBIWXMAAAsSAAALEgHS3X78AAAB5klEQVRIiZVV0XXCMAw8ZwG8QdkgbNBsUDIB6QaMQDeACQgL1IxANygb0AlqJkif8s59wrGTcO/lI4mt88nSyXRdhxjG+TWAS1dbP/g5AeP8EsCaq85dbW8DEuN8A+AI4AqgepbIOH8D8MLXu8QoMgSCEsDuieAr47ylijs/LyRGoRZpgnCKs3G+5eZRAkkvH1FSKSJbjBDIifYANtw8RbCg+pjIG3z+SjAX7a2ZqpLvcj9NV9vvEQKNK0lsILFcWCIN2bCV1LFamgmCgFNYW7B6KgZLYUkCCbZhaqcQDtajv5MJooU67YkqWqZOX3DAoPT/q2uGohPTc6SiFFGytx76ZIRIgnxHFXiR1Cmir1zz5mxlqhg+eFcbfcE5JElmEmmVVVzeGkXux4w7gmpacYX2aRL2wXKESLtCyWJIel3uTlbKSiraRJy6QKxdYcunSZZwgiD0xyWjqIxIWzbtW+x1D0pGrOI+oiiFEwn7wRcrWWa8SL7tZxZDaFpHIuh5su5qKx/fExuvYaROEGlXELwa5/d9utgTt+Cy0XxJWkWmj37U6EU8ftfKZcWTWirKzvmMogGBNGlQEqoi4NDVdosZyCh6cIGCiwKByD2wwWYhoWhgM2H89p075j9T4GElzbuHOAD+AODaIcxgd3XzAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Delete - Medium Gray - Selected.ede0cb02.png\";","module.exports = __webpack_public_path__ + \"img/Refresh - Green.f57fbd61.png\";","module.exports = __webpack_public_path__ + \"img/Microphone - White - Selected.7b3c8c71.png\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Blue - Selected.2fe90f8b.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAHQCAYAAACWQBBDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0xMi0xOFQxNDoxNTo0MS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NTk6NDgtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NTk6NDgtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OWY5NDQwOGMtNDlhMy01OTQyLWEwYWUtNDE3ZTgwODMxZGExIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NjExNDY4OTEtZDZjOS01OTQwLThjMTMtNTdiM2M4YzdlMDJlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTY0YzcwYWEtNDkzMC05YzQxLTllMTEtZTAyYmYyNmRiMWQ5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNjRjNzBhYS00OTMwLTljNDEtOWUxMS1lMDJiZjI2ZGIxZDkiIHN0RXZ0OndoZW49IjIwMTgtMTItMThUMTQ6MTU6NDEtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjVjYTg1ZWZhLTlhZjktZmY0Mi1iZWIxLTVlN2QyOTkzNjgwNyIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo1OTo0OC0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OWY5NDQwOGMtNDlhMy01OTQyLWEwYWUtNDE3ZTgwODMxZGExIiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDE2OjU5OjQ4LTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuuoyU4AAAbUSURBVHja7dxRjuI6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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAAB8klEQVRIid2Wz0sWQRjHP2Pi4S1iQqUO0UUkEDyI4iGxVIjOE95VIgilf0Cog4JXIYIOgrwHEW8DYYc8eTBKSAjq4FXETlID5W9yYmRG1nV3283Vg1942X2fZ57nMzv77DMjrLVchGqTGEKbu8AUcA+4UmAeP4E3wAur5GHUcQoktHG2d0CTD9wrALoBjAKbwGQmCGjzkA/A/fjMsiS06QSWgf44qCYhruKv60UgXmuxHJmgc9HlAx0Xg9DmNvAIaPWmZqHNSMF81/21wcd+B+atkgdHH6zQpg94C1wt7xmO9XngTl1vWLpXJUI+AuP+aZw6gGcB1FISZN8tv1XyJTAcsbcEkCgJ5NpVg7+/FbGLxF53RtCy0OYL8CDqKBvk1Ag8jBuzQAu+QRZRPfA+aXwW6IdVcqUIRWhzM80XQFtp5S20GQImcnCaMnxbATQHPEkZVIlVUJrSKtftAHMB9NxvcI+Ba/4X5HbamZQkv62Sf8IfoU2Ic7ZfwAYwVm2vLB2BrJI7gOtNI0IbV5aLkWRPgdcpIPfVJ73Hr1bJtqghT3m77Xw1xbebIz4fyCo5C8zmzBfe06mjVRJo3Q/sFtooYDsnxKknkuPkDJLOdUKbKjBQABCVW85eq+Snf4IGV7Zds3Wgrv84101X2yvfTliBv4k7fR7gL9XYAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Blue.132fe393.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAYAAAC16ufeAAAACXBIWXMAAAsSAAALEgHS3X78AAADd0lEQVRYhdVWPXIaMRh9y7gXyQkYcgFmkgNQ2LVoSE1lt3R2SWl3bu1qa6fZrU3BAcLMXiAMJwi7J1DmWz+tZSF2ZZyJ4zfDANL3874/SYkxBi6SvBoB6Nslo9UKHUjyauxKxOhY+P4AbI1W26CsJUulWwAlgIL7AwCyvjBaZQFHCwAzABn1rI6QT41WiwMEhdwcwIS+XHKW/MIPuiZLouJwtieQVwPu3RqtUsfZylkvPZ3aGR1P3H36Sg/pOj7rxBmtZs1GndmsLJCVI/kd+iAr+5Tp83+GrJwdkrcfZOUcWZk6/8XOts2Xp5+6+j1GWhitCj/CJqCn6CXSme1Pm+U2GK1EZ+D0tGRz3ubL8ytZ7Sd5VWf3hH0TMxArEra9HQsbJDg8e73fgRl9pz3KBafPi3LLxh+9ZtpJbkCnrwnS6tcDL9XpcRrHXUpJXtnJ3RuISIxjyx+ABFyTlSxNOMFtsEdUl9whdFavBXWCekxz2lYi2+Asf8GhjAIr8haiDXp4ntptklcFjVuSoySvMg6hPe9SnqGxmFPn2IqAPY8X1y0P4zknHsxIGrgoJICs6/hK8mrOgZTTQBKyOuI0EDt15ffeBpHKzQ0WulJDNxgTIYF3DrNna8AgB0eRdQy5bwPbl2J8EnobMLtbtl2sj4IXyepNZB2DY2axJJngOexU5Daihfr2DdG8Sf4G2dfAIQFmbO+k4Okz94P652QdQmMSGjjPxDH/r/hEfBHIu5F9QeL5AV6EnoyN3P9ANhYnrlySV6cAHp2lDYAbo9U99423d8Hfj0arxLEjcmdGq2WSV5cArrn13Wj1w7MjOKO9X1bGsfPFaCV76HlKQzzdaOL4sxAFcJfk1bkjc8G9texZnQCGSV59JdFv1Nm5dsQPP0sAn7h+7Zmy63tkGxitdsyoEL709wAsW4j62NHeMkbWS06Dg2QdrH1SSV5JtKckfBBGqzVlfrIdYnATyG6NGLI+pPS/AUylv7qEjVbSj1dSnSSvHpwtaS/j9y/7dRMKLoasn0Hbsxu2R938zHbzzYpYAvfUm7p2bM8GfF75rddKVpwyunOWpgF7VghM2Yc7x7h8S3+uaeOU60NvwA6CNjddZG2WjFPqM28wrJElJ37IdphSr9ahjJwGD1w/x/M63DbgQPmBXPG7Wf9Ql8IxA/Zu+DhkAfwBN/o01xtVfHQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsSAAALEgHS3X78AAAC5ElEQVRYhc1YPW8TQRB9d8EOBCKfZCigCEigSDQYAgUpkKLIUkrsX4CryFREok2RIj8gHciV+QXnIo0lCksUaQixaWgoIAUUYOksIQN24kOzzJ0v57313jmO8iTrdB8z7+3M7O6sDdd1oQvDdgoA1gAsA8hFmLUA7AGou0Wrpu17nBDDdiwAJQCbALLaqv+jDWAbQNUtWk5iIRyBCgswY4rwMGBB66oIRTo3bOcVABvAtQlEeBzkw2afcr5wRDgVbwE8mFCADBSdAwD5cKpkRCRiaQoiPL4l5hh54YNDR5EwpiDCpyGOcJp8IVyYZd1I3M/MTCKGOMrMORTCdUGzQwsbd2ZxsDovrhOiwtz+6Etx1ggrZfjX0kIazdV5/1lMZJnbF7KpkxIZWelmGrnMTNJUmcwNk/OkFY3GkyvYuntRKTQslu537l1Suc2SBpP3jrFYuXpBjJyuUSDC6sO5E28pYi9uz46rpzWTN7BTwbOFNJ5eTwlXBb4G60mBZVO2i1K+vZGRg1tz8dY2+t5+fHkkJQpfOelTqgMaHYWT6oJmRVwhkKw1NDjyJRMjFRIMJ9VFJtnUHAHVVyYiKtPYTyKhGtCZCml1jiPfSedi9WtP5Lf2rY/Gj6PYxRqF0n5XTOfGzyOpkFZ45lQPe6h978PpD3sV1foRBhG9Oexh5/NfFG6k/LfNzjE2Pv6WmbRMbnRHEBShi07fFT/w6JuKVISwR0LqOl9+6Q4EiUrgyrtf4hcEpZfsKN0K1E1uaNs6QkSO97uR31AEwlGge2u3I+wj0CYNXhVucz+pRLhuwPVAI1YQqTBgbn/6VnWiIsPWpz8iSgmFtJl72MVzO2DrWHtbO82AJEUdQNE765w4TnBDu34GCx2Fr+IWrec+t+Rc855b/ml18kT4wS1aj4IPZSPP04c6xZsAA/adD5tGnn05TeVTFvI6mA4tITgvh3ACGy4CeJlwepMN2S6O+6/kfPxRA+AfmywnvRXqOcUAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Configure-background-green.7af5b67e.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAABSCAYAAADXYA8CAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDc5OEY1NDRBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDc5OEY1NDVBRDBCMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxM0E0QkI4MUFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxM0E0QkI4MkFEMEIxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn777YYAAANYSURBVHja7J3NcdpAFIAXhjtKBVEH1t0HSAekAkgFdiowqSDKjO+GDihB3HyL6UCuIFBBsjssRiEYrdAKXrTfN/PGPyPPPD2+/dHKs9t5fL5VjsQ2QiA7428SHZGw+8htiM+xV3LRUMdEx0hHX4XFUsdMx0LHuuRac91Y6H18tveQ6rgTmuOXzjs9YmyLO1Cw0TG1H+QxTA/zS3iDMh3Kb8E5rrpHfml6wBckfMOMBN/tcB29MyRDPW66RyR8CnAYdmFwQkaoSfdgPvhESU63XDvfgoZEjChwpZ5xShmaEXHKcFyJexXOUtbFRIzs3BCqPcBQM4+YdUTXNUKzjDFr+RAeW8FcVgwmFYboua1dE6R27lqXq+a4E7GMlX2YWQfQOGeF1YNTfFTuSze5Ou9tjQu+PpOr5th1nOuMApGwKOPcsQcFT3PEsm59qf5+XxmSjGWwmO35qbmsyw6RHD0QEREREQARAREBEBEQEQARARAREBEAEQERARAREBEAEQERARAREBEAEQER4TgParsbVxMxaEOOiAj0iACICIgIgIiAiC0lpwS12SCiHxFXgvPL7Nel4BwXPTzywlBtN++U2Ehm9nuzkdZEydsD3GzulSKiH2Il80Ck7ODnRGCO5gSLCBE9DS1qu1+iNHZvNKY2x4HQHCPmiPVJhEpYnDYoJfvcnBEi1odzV+rTR0QQASICIgIgIiAiACJeh286Og3Fsg05IiLQIwIgIiAiACICIgIgIiAiACICIgIgIiAiACICIgIgIiAiwCVEjAOtTYweskRMAq1Ngh6XFbHs37hv1H63gJBw2VQpQyF/IuYO1y0C6yFmym2LjhyF/NCzrXpccl1fx08d8wCKP1Fue9m82lowl/Qkomn9qZWtjDEleyOtcK2Z2kyFP1RdNcdeoagPuOXMRu03wHRhoGTvxnX1HLsFEV/xyxnTc6wpg38RTVFHtqXDaeYVh2WoIKLhxc4TkPG0hBPK0KyIRRkZpv/lBxJeTsSdjIktPGwb5Scl89SAVou4mzOawn/Q8VXJPqOjKfnmVkCz9JCduDYTfi/rwpO+2Hr3HG4iPZicD1ssYK7OW7A3o8edwPvZqP3aoOlYnoTW/b7z+HzLuOCHWMk8w2T9P+T4R4ABAKQWtjMik2gYAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAYAAAC16ufeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDI4RjU0NTVBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4RjU0NTZBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNzI3RTlDNkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMjhGNTQ1NEFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvrY1t8AAALXSURBVHja1FYxjtswEKQFP8DOCwy/QEDSpVHh69X4alVKq84uVd51KtLkKteXRg9wwTLFGdAHztALYv1AoZzZw2ZDSpQd5OABFrBJ7nJ2d0hq8vXHZyUQGpux/1oNIxL/fXxc+9WwvzAVToWxxliFsQXGcmOlxb8bTzDXMJ8dLHcQ7MhlxmLsVVvI5zLpKVtQYmNZlQXmZiBAm2mMh4woJ0ObxWI+RJwSHWksyVCREtgZE8igwmDVUwnNgpew3UCLM5BLWJyKVXQIFP/sHyBYNeDcsEwjEagPBapEPiUSqDz1nCDBhGQQex4Ijc1J274oWGVrh/aHCHd77wIWZAg1sgxHnvYS1U1GJsm72nUiCuiHhxPprFGXIRrRflvCZ7J0Ymce7Sg91vV15lI0dMAaHJZigCjptoIUfBFfSfQNATsENbtWlLh/Y0a477J3XV+7KzpC9+4bWXqNYmhLwzIkwi92Lao9RLRm8eIr9F5OLbrKRlwnC0eV6QULGcGCvVxjq9qRTYIrBB+yBAskSZ2gW4M/pySz7IKbIJEyuAQ5+3ZQ7Cl2VTyX730PZohVkPQC9W+gWZv1QEciSIOS6pPZH98fU/X/0bCDTN8O9JkY4b+2XXnvQZZ3Q4tv2KLvhXxPshxez7DU7MpYy+zVWMrm5dyK+SixboXfG+aztsShtUuxhtYtXWRpYmLsg7FHY98E4S+YO2Bu6ShEN/7R2IOxT/A5iTgT2N7YHOMPIs7cRZajC/wEwhvL3L6HqC0W+fisTX1kYMPBQmqO1u09fLs1L5aEXXi0VNebrETX+p/Q1r3H+jtjW5B9FnFai96/GzvakvMhKytImqWAR6GtOasq4Ql+a4dmJbZjyc7hkKI1Nj2vkciJBd/g/4HJhQ7cybN7e1YEJ9kjuzKo1XeiskcWcAm7x9qW+SjcBs8YT9m4lEFqSWTLCvP7imrbVt0KAnVDuCmyvwQYACaz4fSvheX6AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Physician - Light Gray.bf4ced1e.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAEECAYAAAAF0670AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF62lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wMS0xMVQxNjozOToyOS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NDQ6MTgtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NDQ6MTgtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzIxZjJhYjMtMmQ0Ni0xNjQ0LTk2YjItZjdlMzVlMmM5MTVkIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6M2YwMTgwZGYtYmE4ZS00ZjQwLWFlNTEtMTQ4MDQzYzI1MTc2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NjhiNTBlYTYtZmNlYy1kNzQ0LTlhMTgtYmFlNGJjMjdiZDY4Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2OGI1MGVhNi1mY2VjLWQ3NDQtOWExOC1iYWU0YmMyN2JkNjgiIHN0RXZ0OndoZW49IjIwMTktMDEtMTFUMTY6Mzk6MjktMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjMyMWYyYWIzLTJkNDYtMTY0NC05NmIyLWY3ZTM1ZTJjOTE1ZCIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo0NDoxOC0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tF+A2AAAIJElEQVR42u3dXW7bOhCAUXsWk/1vJ6thnwrcW9SNnEjU/JwD6LWRSfHzxEnb+Pz8fLjGXuuHlzV0uS684kFn64sr+58Powl07xC7LxBobg6f+weBRtC8PhBoJgdLrEGghcmagEBzLEJYJxBok6G1A4HGFGg9QaCFxPpaBgQa4bDeINBCgfVHoBEG+wEC3TwG2BsQaFMa9gmBxoG3byDQvmXGHoJAm74QaQTaYcabLgi0OGOPEWjTFfYbBNpEhb1HoHFA8Qwg0A7mvZ4nX54FEGgH8qQQV/06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\"","module.exports = __webpack_public_path__ + \"img/Proofsheet - Green - Selected.ad576fae.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Download - Medium Gray - Selected.bc6601b9.png\";","module.exports = __webpack_public_path__ + \"img/AXIS Logo for Dark Backgrounds - Cropped - Grayscale.dd65ae3a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAiCAYAAAAkjjtxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjU0QUYxNENBRDA5MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjU0QUYxNERBRDA5MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGNTRBRjE0QUFEMDkxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNTRBRjE0QkFEMDkxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ph2+hpYAAAROSURBVHja1FdNjAxBFK6q6Vm7wurZuxhOLlgZQoLoiIkQh3Ug4sAkEoSQPvk77XFd7CQsIiFNkFgJ40JkiU44+NlNRlxlTeIqmSHhgJn2arxab2urt3/WT/YlL9Vd/X6+evXeq2p+/sU6RigPXAJ2gBvAPnAFuMbCScr3IkudKupUWTzqQ10H36vKxpE1zxu6sCDP/QScNOIigAqCMjmqobMKOnTRWRkXa08D1EV9B2X7AKCDtqSeP/RyfT/wJBscI6yiagJmo0G1ICVfQtCNEEDSnocyVc2eh2D7TVFUBGBdhU3JCRJdN0SvgU7LBAhNmzDyUc/T5j1cuBuhzwBkGeV8FWmBjisRyjWMUi86LMXMz6qWUioNvJj6ErSP8mUa4UZM56swcjUWn8pk91zczUSEkc5DlPNWAr08sp/QX6PFxGcYd3AW3AdusHTU3lmBkYvaYhtTp5YwutiKWi3gFQD2HktP7U4kSOtyI7bVI+DTkJOgN5vSYkqXUJ3A1tKgQmR80uCTkJ2gViJ267chRzulqqQFlbRWlSTKJWLTmSlgy5DYXoyqL8dsbTbuTC85gv00QKFDtA8gkUK3rI3TdRU/xhEflyTgikiprKeIDrSfgK2QtIsq7rDoylTKy0PEmsGKXQTnItsasF5DkalLUTVuagBYdbo6phxOSrWEEWuQ25kXlVYYWQ9vcjV6W/vXJHfjLO7QNeD79NaGBdan7ucK7P8ErGhhwPgeOAE3YItVNfW2yawbx9b4b3SF/w1YnmCpDo5ZQ5OKbveya0u7svaAJeZszPAOm3O5Hv7k4quNm0OiA/PBBXhcBPwIZPdC/k05fvcXHnRnM12HWcC2gvyVS683Xddlvnz7COnROsoZdwTPdoPvZ4KL4x2ZeXUj4NLKe2vnWN0PLdExCo4PwJQSzIWALcAwArJnYHwMfBHA3IZxiy7bac2/AXKQrsFyGHtM9uZme4qMs84gCE4B6Bw8D8H0fBlHI+DOrH0rw63RoZcbijF3Ry5qHCJ6EhdwGsAMy4XA3JhWKvtgrg7fmvDSYTIGEb36a5yYkj8LJ3TA7Rw+tPppMcOzizFacWkzRlaRei4Y+mmd+OMJfNSNRSdEpoCGHycwtkRG2AAq94fqayfwHWPRcSaCiNZToEASLiwNDaC/M2FtbZwACzMwQljpLCGLylFbM4yszN2DJlsWyb86Cu4y5KCpEMcwj2lOq/m0JG0MA580pcMEYKxguSJZ5TKCl2lbg+8mZbldoyA/gAtujyA7jtGW73cmp08wqeaoHE4No60xLQD1KScdgioSxREcCyE3qTHcDWhvwQg0ffXOmsH3YitoHmi2vr+nOs3WD/ltwqeUA27LwXgZdHJgRx5GNP0Kf/0usW/l3cEgaG66Xt25Yjq5PctvngNwTq4rvyztP90foY9f320TPDMYJffh0+vtndkFZQAc2zaHo3BWXX5m3W3tpwADAGGYk3AIVbYLAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAYAAAC16ufeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjY3NjBFQzBBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjY3NjBFQzFBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2Njc2MEVCRUFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2Njc2MEVCRkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pk1B11wAAAMMSURBVHja1FaxjuIwEA1oPwDuCxBfEGmvokoBfRquTsW16diScrdLe1ul3mvyARRpoDqk/MChfMGRP+DG6A2aG9mJISetGGkEsT3285vnsQe73S5QFpKPxHcZdFukvn1iXOvVs9mstg0cCLAmKCNvyCu0TdC+IS8s8aY9QV8jYgz4HP02M+BS8hhr1RbwGwL9z6afxIACC2tWJugbAQAvVqI9FEAlmA3GxKo/xDwmNiJAOjbY7/dmzYx+E+pPNLMVgFYtTJRgrMFChQDvshTgEjFPJRgNCIwzmMDmGHOJH2KyqgVoAIAZFmV95h56zIQsAmww7VjragA5MgyzDGLPA1Ficda2r2WC2dqh/TZjaeZDMUmX1UhjeONpL8BucuMmmd3LgSd2oyFSEnnEsc6a4D6LfNPv2PAFLJ/YkUc6Co9xbZm51xo+YA0OS9YBlHVbQQq+FvcEerWhOAS1KCuBqr+xANxW7F3lK++REa71V7B8G8XQVglPsRFZ2EvFdhfQWswX99B78WTRVXpDOZk4WOYbLBQAM3FzeRtuM3PTJcMegg/FBjNskjPBVSMSGWGZpXdUgkQ/ZPpYJN4IdUsdHonLJW+7bolRfosUNCbXmu1jEkDZkZEI0uDLwgaUZXYF+j+ZvTcbKQDzMzHCd4knYu16z36KGRkQk/yGrWxPRv2e/WzAXtew1uyc/Cz8N/lK9Ou+uYgJ1Lg5/q9FzFLPQ6wan5NP8X8ptGu+py6w3DEg/0L+Rv5DAf6OvgP6pg4iTPsz+Sv5V8Sc1DwDYtX4lv6P0f6q5hm7wEozE78D8NrSt20BapuLYzrHEpsrHxnY7GABNUaatx6xZswvy4Zd9mZh1xusNpP6P9DfN4/xC/IXgP1Q81w0qw7bT/o5Uvv6HrCaQdbsEQCOSltjwSrbO+KWNs1a1nyxZaIN7BgBK6TGpuclNnISk6/xfRBy4QN38ixlW0GCE+xRlBZO9UIxy2P4gE0hh6UoTwuMeUbqz9j0wiYDHKiThd1Atg/O53PwKDYMHsgeCuxfAQYAxBAolQEvVV0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjNGQjFBNzlBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjNGQjFBN0FBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyM0ZCMUE3N0FEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyM0ZCMUE3OEFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjQaRikAAADySURBVHjarNTdDYIwEAfwevEdR2ADcQLdQDbAERyBEXQCcQIZQR767gg6gbiBd8mRNE2tLXdN/g/9oL8cLSysta0x5onpMaNRbsCbXjBvRmptoMN8uL/H3BjtNLCpgt4bLzCNg5USgFobWXPkMxIBtMEQmB/4VRkpQO0UmN9qAnQOr8CaRoKA16cqrpiNc7NEyNLrd87HtsPc+UZNyHTo49wK3AcfjPiVELqaC/gthKxzEEhYI0IgsdLZCGRciBhSagAxhMYrDeAXUnAllQaQhYDgN5OESIAkRAr8RTSAGNJqASGE/sq1JuAiZ8yBBr4CDADrH0ufknAAgwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAACXBIWXMAAC4jAAAuIwF4pT92AAAEdElEQVR4nO3bMW7bVhzH8b8L742v4FyggLt3ceZO7hGUNZuydXW2rvbUzl6aOQbaA9RALxCjJ6ibE7gQ8AQQBCVTXsL38+cDCFAiEXgWv3gin8ij+v2/X6rqu4L+vTtuMf9gZxLg1Tf2IkkETRRBE0XQRBE0UQRNlOMZf8xvVfWP3c4C/PzUEOYE/evjj9/+aW/ytR19/PJk0A45iCJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImqGTqlpX1V9V9dgen6vqqqpOe/ikjhcwBpbhrKo+tajvq+q2jeq8qlZVdVFV37fXFssMzdZdi/VtVb2uqjft8bq9dtJm6kUTNEObgK9H/7eJ/H17ft7CXixBM/Sw49O4HTw/W/InJmiiCJo5trPyw2i2XhxBM8eqvedm6Z+WoHnK2SDoD0v/tATNPsOluvdLX4MuQfOEyzZD3/UwO5eg2eOqHWrct/XpLgiaKZct5s2qxk971qcXR9CMrdoFSg9tZr7r6RMSNEOrdqjRZczlajsGVoMVjYd22DHlbnBtx+IImq2LwfPTXq5/HhM0W92sZOzjGJooaUGvB7cOPY6+Rqt9jV62OzP+be/5NPgBYZ+zwbafR9ueh46zO2mHHOOfZrfHgdt75dYT25y3x7r9GjY+4TltJ0tTMQy3vWl3e8xZs+1lnN1JC3pqJ520GWrOhenr9v637d/D++yectGiejMjll7G2Z2XcFJ4NYrkpi09nbZZa3w2v2qv344i2V4LvG/bsxbbc5a1ehnnoqUHvRrszNs2o42/7tcTa67rNpNtI7luO388o+3a9vrAK9N6Gefipa9ybCO5aV+xUztv1/Ho9lj0es8x59S2NXGSlzLOxXsJy3YPg2PNXT7sCOF+5rbjn4ifs5rQyzgX7SUEfT3z5Gd8+34dcA3w+Nak54TSyzgX7SUEPfc+uKmv+bk3hE5dxHPoT8e9jHPRXkLQc68Ymwpl7gnTVFCHhtLLOBfNT99EETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE2UtJtkN9f7Hn2FbevAbXsZZ3fM0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRRjmf8MX8cffxir9MFMzRRBE0UQRNF0EQRNFEETRRBE2WzDv2uql7ZrXSv6u//ARDWxWT7LNKsAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjMzOjIyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1MjowOS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1MjowOS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3MmI3OTkxOS1mOTk3LTZjNGQtODkyZS0zNjRlM2Q1YzIwYmYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzJiNzk5MTktZjk5Ny02YzRkLTg5MmUtMzY0ZTNkNWMyMGJmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NzJiNzk5MTktZjk5Ny02YzRkLTg5MmUtMzY0ZTNkNWMyMGJmIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MmI3OTkxOS1mOTk3LTZjNGQtODkyZS0zNjRlM2Q1YzIwYmYiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6MzM6MjItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4ci9pOAAAAx0lEQVRIie2V0Q2DMAxEjyr/zQhsUkZhkzIKo2QERmAEmOD6gatG4CQOFV/tSfcB2Pckx0BDEgZ14lhBnJWzpEv4U7lfBNyMgNP6A34AkFrTbnfdKjWtUhcOVSQ1j6zXqGWlAJ7kVBE+Sc8hq8l8KjyAGcA9VSBaZVyL9jB3yAu2Ga+F8C4VDiA5oth9ZjR9qd8CAMlBCR8svVbAfrPUjak95L08Pnuen3ukGsAbAmv4GUC1HIBefIVGh+0leVwECA6G/+o3gBc1lLDetRZwewAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/downloadCircle-icon-green.7ae07adb.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAAE4UlEQVRYhbVZv8vkVBQ9GWysEvAPcFCLtdiP+QNciN1WX4KVYDOFhYhCYGsl4D8wlXVAhBWbidVWuwEruwELCy0GrIUEFiyz3Hznzrx5ee8l82MvTPHNJPedd++55913v6jve1xrUd0lAFYeN/s+i/dXLyLrXAo2qrs1gJQgWwCN59EVPwJ4K59LwZ8FNqq7JYCCIAVc1Wfx7ox3cwBrAt/0Wezb4OVgmeaCC5V9FlfnLOLwJ5st+ed6bqQnwUZ1JymsmL4y+PCZRtAVMzTpOwiWvCy4+1npvgCwZG0DIOE67dlgo7qr5ji4lRmBSX3rOcFGdScpWfZZvH7bIK11vwfwNYBHLsDvOF4QgF8BeDpzgRXVIWUmTFNJm5SrqO5EKT4D8CN5nI+eMSNLeREt/BbADyS+s/LpvCAgeaexAdFfyoUTytXWE6ADBUjBXZ/FmxDYhtLUkPiqpRvjmSV3LiCL2bLz8J5ZSHsXUByLTtbOTf8HsHoimTw1KhXyPVO+JchRhGaCzulTMwNXbagW91mcusDuCXYUKablfQAfAri/Vsa46d8BvOqz+D7w3CHT8vcCx6iOOGeYqMNjAP/zqLwGqGbrZwB3pIfPSp6ag6kaHFLiMYnsl/xJ+HxySBjnvl3BJ42LwUUptIqUqFiEI2PtyHOJ8HlBB0tfVOmwFY6Sp7LTLVOpmtyw4KQghEqqAC03Vxp836jC0F/LNXym/B4im9KJzwozFRJRkl8AvwbwT5/Fo1SysodzP6q73wA8A/DEwfdCew/P+g3pUC3YazpbNaa3taPOv18A+HiKw4zonRSTS+jpq/Vxl5sbflswsr7qzl07puPP+yx+TxxRLVxA14zailW/9oDaujZiWKtgk0Cjknqinms/So2UyOhBYgK1G5PSA6rxFRltoN5CUXss8RTeScT7LFbeDYCjutOisDsoZwS5ht1XmHaI7CU2ygYrXED/C+CDPotzxzNXtZpTYGc7N64+Uvl3VIyb2mIi/L7fWoufidEKfkGF2ZC39oYutinO+iTlwD37VMIx3Smr32zzQuoSwjFc5QXsXk8jh/mqVBbUU2nHlu9EvgQwO6bEkLbSI/4+1VEbTtgFFwuB9VXvC3ZOeagLo7RJQP4D8HyOupjGzB3UwKtxBJHYVCAXH/FUCjVAavL+X3JVcvhaBiQS5qG1ICBfZMFGwrwpqNjnPJUkavJZ20XH7/acd33CHqOxaLcxBh4u087soflmEewC962GTvVyeKKhc1tEnA5NFGBh3gasdRPiWppgl2y+nc0Ef/9zqrOfawTxBwDpLT7yzgke2s9W74DDocCdN7YuGlaSn3cB5TjHZPPvMgAb13vckDZCgHWCCaDCwbsdo36vVTvRLAeN7255l/uU31WOA6Okdh/pZl3FC2pa4RJ73O4qbnNeG3ydG4xutiOwOBbTS05HSt+V2xhbnjPkKH0zWVJQPt8B+Ml103aBFad/A/imz+JfZkYsv3Z8RF9PAPwq4yvn5MYzmNPLXfB0uqX5aGeas0UkwJSXvbc+SWRwgkAxY5icWMV08zmtUVyTA+tg883OKefZvLtllKVAWcwrFtMk3Wb/t8YY+6gKbC+JtDEqRUgdrgJrgdZmZkeu7QKSpP8H04GzcvPswr3qP4yGjiogl4lk6Sl4ubIAeAN0FB0UqM4UAQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Add Patient - Green.5766de7d.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - Blue - Selected.5a3876e4.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Green.30e2d404.png\";","module.exports = __webpack_public_path__ + \"img/Close - Blue - Selected.0d8aa0db.png\";","module.exports = __webpack_public_path__ + \"img/Download - Green - Selected.3a0628b9.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Pink - Selected.46c8224d.png\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Gray - Selected.151e04a5.png\";","module.exports = __webpack_public_path__ + \"img/Physician - White.58beb934.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAYAAACOqiAdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTkzMEI5N0RBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTkzMEI5N0VBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1OTMwQjk3QkFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1OTMwQjk3Q0FEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn8TzKYAAALzSURBVHja7NzdbdswEABglvC7s0G8QbxBtEG1QZQJ6kxQZ4KoEyTeQJmgfvFznQ2aDawNQsInRBAs8kSRsnjHAw5BIlGGPhzFHyj+cTgcBMO4UZmrzFSuWn/fqzyqrGwXWDAE20AuLxy/h5+1ylLltu9CkhHaGqrpdw9aO5Zw3n9oxxauUPlP5e3AdrfQruAIp2/6deQ1Xrt4MqGho2x3W5nQ0KGfe2/U4XyjNXHXdFmZ0AbHliJcaLRmpF3LhOYUmUxobisQmdDcQiY0fnBXQ9NrWJnQnKKSRNHqgJ+/U3mSBNGexHmDMhRedBNgDNoOFuPHQHjP4rxHFw0cFq1o/e4bbydaO8KSKJpvvA9x3m6PZjoyBs0X3ge0P8UC5wOtjZf7QpsznE+0JvYqH32gzRUuBFoTbzBdGYU2R7iQaDpWiLZWNB0LRmhr6K7LsWhzqrio0OYCFxot8402B7jQaLrdX99o14abAs12fSe0a8JFjXYtuDmg7WDAOLnehGSKVoy9kSnhSipoU06A9VLngQraVBVHDm0KOJJooeHIooWEI40WCo48Wgg4DNpz7Gi+pyMYtEfReo82VjSfFccKzRccOzQfcCzRxsKxRRsDxxrNFY49mgtcQnOA2yS04XCZypeENgzuxgJSc0PDLrm2ov8/i2uoxiMnNEzFrVT+sjz32KFh4LaGY3+4dU8s3MowitYWVNJoNriN5diJK5oNrjBUW8UZzQSnR8q+N3wqh2ojhWaCM72hXXJHs1XcpfgcOP0oKaL1TYD1aHrXc/7e84ZAlGh9FWfqpphBoVlJ2NCeYkXrq7jMcTTNYZpyj/jcMWvbWcLpBf3PAdW2hqrJBf6bsqJHuwSHGU0zOG8IFim0IXA1dMNc2L+0jjxad3AwddMlPOxd0GpqaF243PO1a/H9kjIptG5X9QX3DlCVIBwLRDfFYlWO69io4YqEFRaONVYXzrQ2TVgGuDxhucEVrXVoBTsgCQsBtxHDtotSqPgSYAC3lRisrtbaBwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Proofsheet - Blue - Selected.5eb78d49.png\";","module.exports = __webpack_public_path__ + \"img/Return to Single View - Icon.4bc54b0d.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAsCAYAAADxRjE/AAAACXBIWXMAAAsSAAALEgHS3X78AAACGklEQVRYhc3ZMU7DMBQG4D8Ve7gD7PQIHdjDxNp0YS4TV2AsJ2i7wkJmKtEDgEQP0EpcAOoTGBm9VJabOI7jPPeXUJvUJJ9enfAcIKVk/8HrPu9yzgGYkxRiAWBOr15hRSeFyAGMaXPsC2dFyyxVyKW2ywvOPj1kluZd4exoBIBHQaMjPBoaHeBR0fCER0dTpgC22rYVHh2dFOIcwBrAhfFRLTwqWgNfabsbKx4NXQNeyiy9bJrjUdAWsLooGy/OGA2TFVzGBk/+W8W44CeZpVPL7yy0JktlwlbppBBDAF8GeGID47ji6htZsFSawKrCqbZ7Ql2f6zHycnzv6BBgM71Ojz7A6BPdFxh9ofsEq5yFOIiepBAjAK8aWAC4kVm6DnWOoJWmheu7AR6FBCMkmsBzbVcJVvfmoAmC5gRDR9OJW4cbfED7PvWJAVYZ+D71qQB/c4BVBj5PfZJCzAzwBsCQAwy996hoAY963JpxG6rwngMM/UJ0WcqfAhjmLc+6WnADq6/tmV5/ANwB+KDtB49xlalsTSuAW2OJX1dhdbAVgFsAj4RR738BvNExdi3GNVfaUnEXcJkXOvmntr2i99ce49zQNXBQxdnnsBnrn/Gais9YhRVp7D08HhDujNeqz9qMO4rzGtH1Ps4R5y4vxL8dQqVVa3oq8Nb9dA2cdZp4P/fQ5vhGZukwuMwS75ULVfxe3bc5oIcA+AMBzNu0QwTV4AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjM1OjAyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo1MS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo1MS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MGZiMWJjNC0yOGNmLTdlNGEtYTM3Mi0wNzc0MTg0NDM1OWYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDBmYjFiYzQtMjhjZi03ZTRhLWEzNzItMDc3NDE4NDQzNTlmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NDBmYjFiYzQtMjhjZi03ZTRhLWEzNzItMDc3NDE4NDQzNTlmIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MGZiMWJjNC0yOGNmLTdlNGEtYTM3Mi0wNzc0MTg0NDM1OWYiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6MzU6MDItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6sSGvFAAABbUlEQVRIib2WsUoEMRCGvz0PjysEr7OwsjoQQcTKZ/AZLCx9AcU3EGwsDtTOVqwEn8DGxgcQC9HG5kTPQgTv/C2cXXMxu+Yg6w8hk9nM/Nl/kuxmkvgPNK3vAAfAutkAr8BbRI7M+ra1IXAM7I7FS0LSicZxK6llz6ranKSutZakjqSB5biyMZIKonuP6DKCBEmnTsyS+R4c37WkWUk0HOlcjCKlbwR8btFXgAugnU+cqZhchSzg82PXgMPQiiYhisVGGdFnYqKgxgBTqYmaJf52ZPw5cGd2vypnZjeDX5MhcAQ8mR27CxeATQKbpIwoOcpqlBy+niNgj2+9P2z819tmhM/TIrBVTPKkuwG6k683iAZObX3pholIwDuLPlHyg1pGVNvuq1O6SqLUKEpRN1GhkE9UG3GeuO+NU+cvjIH1KT8PGT83z0tunAHbwDywCjzy+8aOuYpyNIFlZ7yf/81MS+pJeldaPEvakcQX/mJN0KM5nj4AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Diagnosis - Blue.8a13e643.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAR8AAAHKCAYAAAA6pE/RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpkN2MxMmRkYi1hOWJjLTUzNDUtYmJmYi03NTgxOWE2NGQ1ZWIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDk0NUU1N0FCQUZEMTFFQjk3RDJBNzNCODVBOEE4REQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDk0NUU1NzlCQUZEMTFFQjk3RDJBNzNCODVBOEE4REQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmZmOWRkMGFhLTczZWMtMTg0OS05MDgxLWQ1NTM4N2EwNDI4YSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmZmY2NjMDNjLTE4MmEtNmE0OS05NzcyLWE1OWIx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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAnCAYAAAAW7IaoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTZFOEFDMzBBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTZFOEFDMzFBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFNkU4QUMyRUFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFNkU4QUMyRkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp2KpFUAAAUWSURBVHja1FvRcaNIEO2l9C9dBGYjEPt9H8YRmIvAOILFEQhHYKnq/o0jsBSB0d/+HY5gcQZSBqfZ6zlNsXT3DAwId9XUutZ4mOb169fTDF/+/vEneLDFaUTGv02rcVSncYDPZyEO7WPTSvSr8nGzWQ8QktOIcVw5/O3HaWzRke2EQUhwXFtcvzJ+3qNfWwxEZ/viyBQFQHoad56cVwAVp7GeCIOUb9lpLD3N946+FS5/FDhEjorsN4+AADJshRGVE6lhDEtwDc8eAQGc6xnnTnyCoh7WT0sad7U5glMhG8eyBQbbq2MK7hJ8r3ivsI+m6AUvHel6IJh2Zbl4xcYNppEhLca8P7e8/sgIuW3AXuMcKaenFCgR5kEJEK0JJQ4pKnVhkAggfcc1JANpTYppRbKdUZRIoh0avt0KWUGx5p7SmjahDxFNLoL2mNbKng8mF8D5QCcrj4AUgi4eDXGuO95jgUzPhOfYCkzQMhlHaZWebjAiSg8PJ8SFHZl0VrqIpPCgKgGQHTI07wEIILtz9G/DXPeMwcmCwqWsF09gtIETIeAc3fMe94gQkCXDjnujCvNlB2TLDRN4z80Nd9AoC28ZmqUD7iVqXNiLsEErOpTNCQbSFZMiY9e9hKOVeI8jE5i/gbJgFvUw8IKbOnPP/P4OHbQFJkeWzRltjDxrFmUVA8zSTGMaFEqQXlD0xrRCoPvSYk06yFbMNTodj9lJqBh9zJugpESezeAypun+zpSf0v7qTqh60gv6tiGKmliDEhH5NrtwP0rTfUcIKCXotSDoNyOmYy6tHgn9+wUKRacpdHAPuL5NQ5hzQo/+Ecr5aIDqsatfW6LL8D9T2ur1Kb33UKz94zS+GZtb09bCDn2HDtcT8qkg9PIXKAsidUzN2l4i6c3ud+bvNgO2a/pqS5vFM0I0a5i+hQjI0rWNMXWbEUyZOiix0A464jUVfEILiIWHE16zEvQ3QdDDzwpIs83yGUApBEG/xIawq0UcKCVVL0/IbDaEj/B7f26B5XMGl3vV7ApKOSNovkS21BNZ/BbohqLuPBQtQNZGmnuC//p464mAkhKpl2QKQL9WuS/r0+FNWnTnaSLVmFrzNVUmB0j3tlbGHYx7iKFtw/hqsUOvmJQHhF/VhdPZmvv/QLiouMDidYf3SRD0SBD0AvhOc8WJ7cCALImuQ22Comizb7lQv45djAiIJOgPYNfhPQDfada+pSMCkjLdh6ytJM6YqBoDGNsOr4tQ607znvj9HEvsMfQzZ8r5R7OoChoOPDDA1ANqjAoIqcMbQ7cOr2YMd4BhNWDg6f7civEt5zaPa6Dfk89xJ1143FzqVginH3tPLRMFPPeq+RoDL/OcrtSct0L1KO7oU+APMKh8/xPOp1D6lLpvwDcUN5536GrN35gCYI4BUsP5iFAXZmRwPpvM9edau9fcqfsC7A5zf+ADrnDUjU1nCOdvO2IcNkdFh+zwhiB3mM30soXztzXmNzbN73IShzlTiv3SpxApprQ5jGdDnIqkInoNfr8isLEdCMe1Agu6R0z14ts2MN6RnwM+nL8wEIY288Afm45tPoXQVdfNgODsMNdf4rDGFgPhcSBwjjh3aJuOA4fJSwOcF0YsXdKUYsbXkdKVxBot7PdE28nV3nGuEOe2DrYu3zyWxn4hNkYI/An6PS6sNAqDKVphtJdio0BZCBtbXeho/zozftbTgRKmcWRnKPboD0qpCq4e4sb/CjAAnfNhSTkUtUYAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Physician - Green.34760680.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAzCAYAAADVY1sUAAAACXBIWXMAAAsSAAALEgHS3X78AAAClElEQVRoge2awY7aMBCGpwiJAxL0AtddnmB7nkt5g/IG5Q3KG3T7BOUNyr4Bj0Avc2bfgL1yapA4cEBUTsfRbLCTmHXATveTIi2wTub3jCf22B9OpxP4hog+AsAny23XiPjH9zO9CCEiZfQYACYsoF/SJFGCAGAFAEtEXL/VhouFcK9P+Xp4ox0vADAHgMWl3nIWwgJmfJX1vCsJC5q7CnISQkQqfBYAcOdZQB7loRkiLqs2qCyEiFRPffNkaFWeWFCpd0qFcCitPIyDS3lWiaRMTCtwEcDPXrEtVqxCAhGhKRVjDS0iWptEdLtdGI1G/k0VbLfb9DJgDbO26b95YBs90W63odfr1SThH0mS2H564PQ8PbMr/wWn2ErZab/fw/F4vMRWIxU76CsRLfOp2eSRRdUHbzabot5zBhGrNlkQ0b0MsVeDnYger/Cy80GfZxYZmRAx9YiFmcxi0iOTGuZOddKXg14KickbmszmVIgaOIG8+Fy547VQ5pFJNKafk9quhYwDMsyV1PYmCPkMQkhM2eoMNcZbPCWJnfvC9UhMvAsJjXchodFCxFUDdGy0R/ytjm4AImZCYvbKbxBLXSXki+sdBoNB7YWICqRO0ELUQv6n6x2Gw+GVbTaSFiHS0FIxxjWj2HjReyuyiqLqRb/KhKiqCRGFoneu/5DvkWVk2SuRpatXJVMuB30vaq3GRafTqdXCw+FgK5lKfiDio/6cL9DpcqS1tqWE1J2pdrtdmZBEhhXkpyhcuTurqwbINF/INlbji3anAgitJ0Q862znbYUbY91WKJr9jgN7txRuwVmFcINQxDybxoWkMZuh/8/2tKQRBwY0jTjCIRGHamYePHT9QzUmoj7mVES0B89uDgD8BRvgLxH56VrLAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAsCAYAAADxRjE/AAAACXBIWXMAAAsSAAALEgHS3X78AAACGklEQVRYhc3ZMU7DMBQG4D8Ve7gD7PQIHdjDxNp0YS4TV2AsJ2i7wkJmKtEDgEQP0EpcAOoTGBm9VJabOI7jPPeXUJvUJJ9enfAcIKVk/8HrPu9yzgGYkxRiAWBOr15hRSeFyAGMaXPsC2dFyyxVyKW2ywvOPj1kluZd4exoBIBHQaMjPBoaHeBR0fCER0dTpgC22rYVHh2dFOIcwBrAhfFRLTwqWgNfabsbKx4NXQNeyiy9bJrjUdAWsLooGy/OGA2TFVzGBk/+W8W44CeZpVPL7yy0JktlwlbppBBDAF8GeGID47ji6htZsFSawKrCqbZ7Ql2f6zHycnzv6BBgM71Ojz7A6BPdFxh9ofsEq5yFOIiepBAjAK8aWAC4kVm6DnWOoJWmheu7AR6FBCMkmsBzbVcJVvfmoAmC5gRDR9OJW4cbfED7PvWJAVYZ+D71qQB/c4BVBj5PfZJCzAzwBsCQAwy996hoAY963JpxG6rwngMM/UJ0WcqfAhjmLc+6WnADq6/tmV5/ANwB+KDtB49xlalsTSuAW2OJX1dhdbAVgFsAj4RR738BvNExdi3GNVfaUnEXcJkXOvmntr2i99ce49zQNXBQxdnnsBnrn/Gais9YhRVp7D08HhDujNeqz9qMO4rzGtH1Ps4R5y4vxL8dQqVVa3oq8Nb9dA2cdZp4P/fQ5vhGZukwuMwS75ULVfxe3bc5oIcA+AMBzNu0QwTV4AAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Blue.d5bd3a73.png\";","\r\nimport store from \"../store\";\r\nimport { logDetailed } from \"./utils\";\r\n\r\nlet patientRefreshIntervalID = 0;\r\nlet patientRefreshTimeout = 30000; // 30 seconds\r\nexport function setupRefreshPatientLoop() {\r\n logDetailed(\"patientRefresh\", \"setupRefreshPatientLoop\");\r\n if (patientRefreshIntervalID) window.clearInterval(patientRefreshIntervalID);\r\n if (!store.getters.ssoEmrPro) {\r\n patientRefreshIntervalID = window.setInterval(refreshPatientList, patientRefreshTimeout);\r\n }\r\n}\r\nexport function disableRefreshPatientLoop() {\r\n logDetailed(\"patientRefresh\", \"disableRefreshPatientLoop\");\r\n if (patientRefreshIntervalID) window.clearInterval(patientRefreshIntervalID);\r\n}\r\n\r\nfunction refreshPatientList() {\r\n logDetailed(\"patientRefresh\", \"refreshPatientList\");\r\n if (!store.getters.isAuthenticated) return;\r\n if (store.getters.loadingPatients) return;\r\n if (store.getters.loadingExams) return;\r\n if (!store.getters.autoRefreshPatientList) return;\r\n return store.dispatch(\"getPatients\", true);\r\n}","module.exports = __webpack_public_path__ + \"img/Delete - Light Gray.64679683.png\";","module.exports = __webpack_public_path__ + \"img/white-bulb-icon.dab61b0e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABRCAYAAADWxZSqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkNCRDc0OURBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkNCRDc0OUVBRDA2MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQ0JENzQ5QkFEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQ0JENzQ5Q0FEMDYxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnsXrbkAAANISURBVHja7JztcdowGICVHP+hE9QbxBvEmQA6AR6BThBvUDJBzQQlE9T88O/CBs4GYYNK5aWhCdhygqQrep67944kBkevH31y0lVd18qSRCIGKgW9GXT8PdOR65joGEaWm5WOUsdSxzOqdHPd0gqZ2vlTxzRCkQy3Or7raHTMUOV9MpmWaC3JhF1F+iaVa0Q67GXKpTYOSc3RlgqhLGXKRCQ4zY2MoaBFphFJ6tVCFaThtEwFXVsvZiqeZZJeMo1krAT9BuXk7BVmncl2DWmrXtZdLpVEJLGZyeZ0d8dl6mIjA/QYFu/Kg1ltG591pGq3jAIik03fP1FxrQKXUnmmFi3ZMZn2Qwefywjrg15jIqL7wrhRDmS624b5WqGJsKKVFjKlJ7r9pQqz6HsnAv8IcO9sYHFRjCJ9tNyhvj3IAuZrfI1MlPucYyZwz5MjOVOLmfjW0SQhkUkIMgUYf7lYRqgsutS1o+7PlOf+8BfXPGc4F8gEyATIBMgEgEyATIBMgEwAyATIBMgEgEyATIBMgEwAyATIBMgEgEzgHDYU+CFTbjYUJJbXFI7KhEwBuFXhNmaa7Uj3dHPAmAn+nBoTgkaFO2Bkg0xuyHU8eryf2TH8oHabPefy+snj/U1Zc8ZM7loIs5PW15E6pjWqDn6uZODdeLq/KWuDTG4IcaTOWMcXee37SB1T1hSZ3CU3BGnAMo8ZM8HZoGXyN0B2MX7hSJ0IMbOswsHnVoojdeASQSZAJkAmQCYAZAJkAmQCZAJAJkAmQCYAZAJkAmQCZAJAJkAmQCaAj8iURJqbBD36YbOhII00N+csd6YiOVJnpdp3ONzIG6vIZJpZXGObk2iO1GksrltG1kKVlg+/UfBPy2Rq17TjOrPR75eORQQJzNWrzYUnaNtYuZEW3Tfm/xkFyttqoF6OYRlavGFK/fvLvEPIwvODXcuz3I+TfPYk5hSW4qqua6WO7M6EVrbywJ5JxdulgbnyezjU/06BSKdlMomZSI2DdhYdXVz0Mu373AyhOkXKSUO3TIdC0eW95QGR+sm0FyqV5MGuYt0pu0VMZDox1TPJ+6Tjq9qtkscm0EIkMrO2ClW62S8N9CG74Hw0ilXtd/NbgAEAsEOQDtFjjUkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAnCAYAAAAW7IaoAAAACXBIWXMAAC4jAAAuIwF4pT92AAAEGklEQVRogeVb7W3cMAxlg/yvN6g36G1Qj+AN6k7QjHDd4DJBrxt4g7obOBs4GzgTqHBBHXSC+CFbkh30AUSB9CxTfhRJkdIHYwwkQAUAJ+dfHxPKCABzihcWRo1i5+hjwHmNKdRaS8qiWAsADcqniGdfAaDHifRrXl4ANc5vkS+Rr/uD8+rREOOxkBIhjTHmatJhMsacjTFVpB65pDPGjAnnN+KYUfpqf1gbY4aEyvqYdyanRQPJhQnfkYyUc0ZlfSzKNwXJqDIbm48BDZzVi4spFfr9zxE+8YUI5HVk3HkGgKdV/liPBv3+R+UTb0wgj4k7yzgdG08Jtk5K32pjgsa6K1zCF6WrGDK6s05p2T3+VrRu/E2Hz2hAxhpq8Fnxwba6mU5BzoQGkpIQKVGx8U1DBGeAZ8V3DBITGoxbIWMGn98Jys8xQVL4UNLq7zeSEXrnJZYYfxBu6V0zupNa8cHOG8Y/CatyXpO6RkgjGN6dN3AHbmPYzCSSa1ljGK3wQXK4SMowKD3GECkV88BTIUKsSEF4jCBGSudzJhOxxNwMX1L+WpgQK9Jyl/SqlKtur7mFMPmkhPztvHP5g0vLB4EQKT6VcseUUMG/saScDqq4/cCh5KNniJQyuZIVA25eIT0vlhTKdR2lSOhbFhWYNbEoZbq7VULudbSkxFji3tZFZUnSXqA/mJEBE1vggWjaJGnWJEaoiVRhDek786pn7Iscrbk2EH9vHrFY6GNdc6YsaiSEK5h+A4DrO5jLHR6JlXJ0UqQK7xv+5ogrXsQDoXho9RwFS9n7N0PIC+r/LgkBJCWEo5KyuKKfzP//whXyHg5nhA6Y/MMDEXDavPpEwzbcvjIP/sBV5BKyPHfGhlnITe8JipQBmELkUXL6tRXe0AatdB2Pk1Ab+rZPqYjJ7lUbcmVLhZfaTB5hXtQe5bajB6aPsmdJ4okhwyiqxdzzMZXmHELV5mqXFK5yWVr5VBVerh1hCvZRfKGqD7cqivsAddSmpFVpKrwxcUE6AJK74+gLV5+7xXB/AhRKEJOrwqs527Wl1awVruF2935/QM4P5yx7a+LHVlcjFS1zdSGp9oM7t7tnQoNo/HmqdLlRuKuUH0sq78+J02bppE4wZlODaQ5xXzdYb6s8LnrJYLmSmzTOIcM1xlchsdKZtpn6ftyx1auwg7Z4xd32iDJ5BU33boe9OqE5KpqzwqupMFu84G9Hp31gqwb+vZw2YsyOrM9tXH45UCpV1aTeOSA23DTK574G4WJxV6X3RbmvQVio0+8Y5ZuM5PQ7beTcVXPORE703Zs1E7C3uba6tQlXxpEOM0DkyXkO9hZX9MrfehG1cUS6g/IHA+TgJAZHRoVzswlKxQTxNyfRGZyLqauQ6nbw/4jFCNO3zQHgL6rX3S2J605PAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Proofsheet - Gray.e677f2f1.png\";","module.exports = __webpack_public_path__ + \"img/removeimages-gray.b201206c.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Physician - Blue.a8e97acb.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERFRjE5QzlBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERFRjE5Q0FBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEREVGMTlDN0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEREVGMTlDOEFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtfER40AAAFRSURBVHjalJXhUYNAEIWTDP/FCqQDtQKxgmAFYgVJB8YOYgXGCoIVJPzgt2cH0AF24O7MdzM7jJDlZt4w3B373r3dPZZN0yxmjjtBKjh7Nq9mBI5BvwUnQSvIPAS6cecg2KP+SfAGYeEh0A9fBWFCUU4wfVYICpC4CO7ZHEZUbQUH1q1l7hwEjq/qjjztadYQ2ETfss+d5F5QCl6wImBFYUTEoWS1mcspgMJTRQfUV+RGT9RBvkNIxntM/on5I3ZeLNN4mmvBF3PxNNG+Fqs2gkfW6mFukgsW9tgQRko5Bh1rur230bIJAekg+a1533gIpjq2oppKcGUqSxPfJQ4CtecBpf0/5DWJ1rVPs0cJzysnQTdxnUTlNxDmED4rQeLMwZYSDIOGK1n7Zb6gtHW865yXoKIBPwgYrxRV/mMaczG0cjnzf5ARODX2TV4XfwIMAKI3WyTF2lSMAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Gray.b2eb8c3c.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAiCAYAAAAkjjtxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEzOjM3OjE2LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMTowNDozOS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMTowNDozOS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmNzE1MDJiMS01ZGVmLTdkNDktOTgzMC01NmMzMGFlY2ZmZjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZjcxNTAyYjEtNWRlZi03ZDQ5LTk4MzAtNTZjMzBhZWNmZmY2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjcxNTAyYjEtNWRlZi03ZDQ5LTk4MzAtNTZjMzBhZWNmZmY2Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNzE1MDJiMS01ZGVmLTdkNDktOTgzMC01NmMzMGFlY2ZmZjYiIHN0RXZ0OndoZW49IjIwMTktMDQtMjRUMTM6Mzc6MTYtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz55/imbAAADKElEQVRYhe2XPW7bQBCFPws5AHUDQicgoByABdOrkWt2adW5Vel0ap1KtdKolwsewAF4AQc6ga0bTIqdtZbkktxlHDhFHjAwd/lm5s1wf+QbEcFBCpRADlyACjgCZ/pRApnaBajVpx7wcbFS31zHtRPj0mGLiLWtiNQiUopIIiKpPts5WrYSkbOI7EQk17lU5yu1xONnbdPyt9xc39WqqRHDPpQisu8JnKjzypkrAwTlKijzxDuq0CF/W1Tt8uyL84hzqhwrpBpJZC3ThO7cseeLDRX+JtpO7AIcjyrgrAWEJtw6AjeBuXyd3osIM13K3cXdRQ18xmzEc+CGAtgBG33eANsIXzdGCqSfIpxStSoy2UVtRd/OD8MeKGeYzpUj5ARz7JyJ666LDCN4Ko5APsNUfOT62XzYYSoEI34KcsLPZh8uwNsa3mI+2a4lKOXalS1mOeQTktmYlwm+DdxI86Yr1dwEe67dBbMksojkJabwBFN8FaWwiaotOAQbjOAygJtglkGG+YIJ5itOwQrIY89Da/uA8zSV5g2ZeC6R2JyTBaOCK2le2VboVi+Y3HOJbCbkyjUXsY6+LlrhtVqlohIP33a5XciQZeLcrn8qeIpZ0SGdzqX1A2rKpnsPJFyv2z3dG3CllmI299m++CjBFinXfxhc1JhC6rbDRwuOxmyc8m+hLXgBHIAXQNROA/4F8Ozw5j28OfCgvLsejs1t8x588VzBS+BJSV+BL2rfexIsVeQP5dmEPhz0/RAK4FVj3er4ocNyjpBnETlFHE8P6mPHazFYerhz/SsichcY/175jfmZU90C+DbShXZHHp2xfV56uK8RcQf9rGCb5LFNGMAC+OUJ3reOY7HGLLcGQv9FWraExBQ2Bfear/PFrWDbqSXwsydA4Yxv1MfdSLYgt+tTsMacJLfeWM6meBGRQ8SmO/RsusWAz9imK8Y47sAmPOlzobbucV4q/1557ikz11OkGBHs8gpt2skZF84J0xFsKzzJFS8qqK8ja+WIdnwuzeLb3W4LdnnP4kej6D/9qTh0hj69I69zDr83CsLO9FDeG/7/Wvvb+A1KF4ixmf7kagAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Refresh - Gray.d478bf2e.png\";","module.exports = __webpack_public_path__ + \"img/registerreturn-icon-blue.2c8f0968.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Edit Patient - Blue.22639bc0.png\";","module.exports = __webpack_public_path__ + \"img/returnToAdmin-icon-gray.1c4404df.svg\";","module.exports = __webpack_public_path__ + \"img/Multiview - Pink.9d5223a5.png\";","module.exports = __webpack_public_path__ + \"img/gray-90rotate-icon-clockwise.75c28a99.png\";","module.exports = __webpack_public_path__ + \"img/launch-icon.42b8779a.svg\";","module.exports = __webpack_public_path__ + \"img/Proofsheet - Gray.e677f2f1.png\";","module.exports = __webpack_public_path__ + \"img/Add Patient - Blue - Selected.c60c9c04.png\";","module.exports = __webpack_public_path__ + \"img/Delete - Green - Selected.e77076ce.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABzCAMAAABNVgvhAAAAM1BMVEVMaXHCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsJAHmljAAAAEHRSTlMA8KDQEGAwwECAIOCQcFCwK2Xn/gAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAzFJREFUeJzt29uOhCAMAFBFkIuO4/9/7WYVKIyKVov6QJ82kzieQCkdyFYvDTm+MFRhIaKwMPFylnpLmZCFhYjCwkRhYaKwMFFYmCgsTBQWJgoLE4WFicLCRGFhorAwUViYKCxMFBYmCgsThYWJwjoTz7C4UulXPsBSrJteyvh7WFx0/vi92XbdzNJ1eC3A3sEKRmqK+g2sdnm/1D7P0qHHDtvme+9itU1g0sbMf23m/E2sT4ASfugezi0uY1TF6xesxBaqgp6nTe+k1h0sAfXTrjybWd32M/lZDIYqfukonmNxvwI7X6Rs/svEY5lZUBdgY273aml2FiQ7TBi3pbRPPZiVNThVHYyMTaxE+5CZ5ZdgSGAHpjArq1+mFVA/6WezsfjXqcIkcqrt+p6XZfwSDKuTW4TpxMrH8kuwFiuf1mbv+Twsn+zhEgRVOt2zsXyyN2uq1KaTkcX9LijDFMKoMrBgF4yWG0pFz1pfgpBth1TkLFiC0Xd6VXInzMbyqijZoZU/NlbULNcd/NRLhlXRsny2x3sLXkXL6pOq+riKlKXSqv3anoclyVSULNseNAQqStacWXF3cFJFyZq/Sgef+JXZ7HYy+VizIRgWUO11fTlZ3c9XmfOqjJMI+xBedZmllFL2tX2U3H4bPKO6xhL2103z4VBNJ4aRl1RXWOG547SxWEr9EXBKk7oTyMKCYytX29W4iIPtFR2L/QrYz2HyiGoZiFifxcD8r8HY2iFL+3XW4F8t4bjWxK7+XFpdYBlXk6Yq5e5M/luHwfWnDLvfELDcmrPPuV1mGp5BS6nFhZE6zbKJBW2BuZjhJCx72B8qvjClj7FsXoc1aS4NqbPj7Cw7Y1EXOjzPsvkePaMeZ7VQDSD0YlrvZjFfO4N4POXN2mDxlXm9l9WvDZYIyukzrLULSlvIvmQqNMuOS9gbGL0sr3ezZFyzWtHDzRydCstym1+rBt3LoGsex3F4jrXS/bmgK1p4VrOp2rvFOcNi+kj4OVxGRzmDyP/ZX/zasdEx8jsjHOu7+Ez24lJ3TMLyV8+1lEwLRVfWr7CM1v9nDud/Z+Vh3Rfi0Bqc4yZVVVV/S9rFas6MTGgAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Configure-background-gray.c3d8ecff.svg\";","module.exports = __webpack_public_path__ + \"img/Physician - Medium Gray - Selected.697451da.png\";","module.exports = __webpack_public_path__ + \"img/Physician - Light Gray - Selected.e788fc96.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Green - Selected.06b15780.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAAjCAYAAAAJ+yOQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzcyN0U5QzRBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzcyN0U5QzVBRDA3MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNzI3RTlDMkFEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNzI3RTlDM0FEMDcxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pqqipp8AAALlSURBVHja1Fc7bttAEF0RPgCVEwg6AYGkS8NC7tnINSumZSeVLO1ORZq4Ym03PIAKli4sgBeIwBNEvAGzdN4Yk/GSXH4cxAMMJC1n37757Gi4+P70VXXICkpSaS3UeJF4CnhV16arlvVQawKAQhzia021HvrAIa7WWGugtTQ4eWCfqQ3JhkSmNdfqdZAIcVgIW9XjbAI8kyQ4N4EzoXTkSnicWxys4HEOhxJ8mmzcHmdJSpzrASvgRB1maEuQA/tI08oQHYXDqgE1W4BoyiPvsLTkAwjyixQzUgrEfWCOkQp7M2TilWTMCnioZPDaZWkO1TQpgBMTyRXYlxNAqY58ZKNU0+UAzFeS+UTAHDhByyUam/aXGnXUvOLNSJKcD+Ym6c6MV1K6y45GOySC5cB2Yy2c5JQoUAtz34sk3aR4JIYPRymScxJ96TycZDgi7S7vZ7iN/owkm26RO2IhG0CU/usT1hfTCRkxRbHhUjiiyweWB1HTluNVwZ5PFZqe3oxqlK4Y3+n/vGKHB8yhsuUSZbCtJqR5RQFY9EzmvohKIUh33fZ4JFGPlV3VNZnzjj/mLzMV45/tKwcNvX+NeI56P6FpKJXzYdstZq8nhc07zlxCQ2zAXhMq1vg98UZQDnkRm1syNni4LKpW7epfkZQj2KA6p5rcaK2Z/tQaMTv5bMP2KGG3wfcd27M14JDtWtiQ3VqSpIWF1k9a77T+EES/4dkJz9Ytjjfrn7Xeav2CPReBs4AetS6xfitwll23uwG8B9Gd4dmxg6AJi/bY2EZd6TbJyUBmiRT1HXqCzbPB0Ta5M0RzcJ9sUvwLtXNjYX+tdQ+SDwKnNtTzo9azyakukjJiVJMEdBa1s2RRJLnHvm1LTUrZ25JcwjBCCkz1uoUDFwa6w+8TKwu6SBfLbB2Z829IntnVp5Rei0ieGdAaegPbmu1RuN0PWI/Yukx3ZHBgzwLyp+XUda3+d3HUB5APQfK3AAMAK6ndgHQ6zVQAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Best Practices and Tips Bullet Point.08cc8630.png\";","module.exports = __webpack_public_path__ + \"img/Teaching-Research Case - Blue.60b510af.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAAjCAYAAAAJ+yOQAAAACXBIWXMAAAsSAAALEgHS3X78AAADcklEQVRYhdVXO27bQBQcCump5ASCcgECyQFU2DXVKDUru1VnlyrtTm1csXYasrYKHSACeIEIOkFEnmCDR80S683yI1LOZwBC0n5m5/2WT55SCnXw0mICYGJM5yr0s9oNLXDwCTIV+nnTTqdILy0iACsh4KMhB8wAxADWbeTkGgNYApgDOFh84DjIF7eKpKUJgK2IrBNhGBGp0Je1dQL1ulWdAONcWReQ85UhlUhanLUd7DBIBCSOeRE1Jl+rx7knIOf8lVARWQpN8gxJPtO/uzxI8jGS/IAkn5jrkeQrJHl8Dpexd0wtQTXGiQhJvu5JOjcFiaFI8m0fLoMjoPFj+T2iQyWx111CYkOdQh0wXcCiivpwVdE9hTqmLoyYW3K1HAbwlnnkpYVU/nYgl8ZaV/6I10probRgS545BQ8Giy2TYhpdgtBAoByVPtD4+aVFjjusOQdl2oz4JRhIFpCn0314LkZMcrM6+yBiaC7tyRI63Gtd7ueCFX2gsflAY22UN08pUoW+iIz4WuoMCqruM75WZxcUKbfFdmQNJF2FUqBuRPS9GPeNiIN/wtsiq0TylhehsZcWjQfpS9tur3RTwPmhWPH5vZ+0+r8tH121M45nlgdtD8hdOeva/Tg45IylCv2ZU6TDY6ZXMr72mjvpUx+57CPUaNeCau+QbqWlk4nslqvDnqVrT6Mnh4JeiRmBdd3/Ix1eI41eef9NRVoiIn3vGRd/wE9dhM7u6Y+ItARrcejyNwV/Q2QfvMPJuisAL8b+PYBHFfpPnFfW3C2/v6jQ9/QE112r0N94aXEH4IFTX1Tof7N4BNfk+6HXGDwfVejLXPXunuLkfjnwgwgE8NVLixuD8JZzO5nTexyYemnxiQI/c8/R5JFz+GwAvOf4g0Wlx/FbP6lC/0gPitA7ew7ApkGgjSP5Nl3WWk6p0NT07mwxXlqIdVcUWgsV+juu+c6wd8Gjw5slzunMJcQ/ASwkf9oWq9CXfLuXaHhp8WzySM7Z+cl83LuMahJpe0zn5J5pUCY1vVt9MgL64CfuW5g8OicdZ97bKeYUKYfRmhuGwLRWclIOXjDPjgbpHXNwR44rjk+twqkFOfd1IrVXlBHSayvh9eYNK3jKsC+4b8ErRSDV/czxG2McZrhZKLYB9/ysxv+Ly/zSf2nfBP++SAC/ALWs8BDzaNcfAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Proofsheet - Blue.29bedc71.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAACXBIWXMAAAsSAAALEgHS3X78AAADI0lEQVRYhc1Z7ZHaMBB9uuG/6cCkgrsOcCowqSBcBUkHcQmkgpAOrApiKojTAXRgVaCMPE+M7POHZHEHb8YDZ61Xj/Vq90kntNZYCiHVC4ANgAyA+b41rnSeiMVOJ7CKfP5viLGQagfgAKDQeXIMnewp9IEeZKC9IZsC+CWkOgup9iEPx5ItASgAPwF8dq4pshbBpCdzVki1BlABqHWeBEVhxJ/J7TVJf3WGfvv4HyUrpNowcs8hDgOIW//egRhcYFzlJqLJrcj1ofPkzArijTc5O0L0plFdik4aMEdrJv9DEcVINaic73chaqrDUJUYXGBCqrZg3yuiQqqGaXjRebK53o9pt+8FIVUB4Afdv9puF9sU3gsHNhuDws7xkGR1njSswQapzd1YIXMFHe6t8iJOAI5LRAvJ2i5nontccZIDB0udJ+WMkz7JFz6bDgwb4lvm4E7nSR3gumEqlDbKAmVTOdFQOk/WgURtA7kwApXpTmynGe+lnDgLJNzBqtfyQl9XSaL/SKSxA2ynRyFVyR/0TPvNtMtxPPXaauX7INMnZUQ7RF3wfka7NFTDuuhXg8EJR2AnLcaIWnDclqCbkQ2BzXPft2HttjN2o4guXcxNLzshlYdlF0Kqa4tdxe5Ezar3IczqEOo7c/+OSYMTP7MZOwtrd5o3HUYMWVvmCurgUXC86D33cWTZQi8sX9UYYWfTmVLyhZB1d8PRQmbHzmQKfk3R3Oam+WRNrTmu+pNPgT/SLXOnVs/ypOR66TwJaQ5T2sDiEqoNSDZzeH23ZBunk30JFTN4H9X1dg6SdZX5w2wQ+7BkTcjPTnQ/+Rb7j0S7wHq9G45KfzyyxNHZ9yzWnDEwb1hIVdnddR/9Qw4T3c2dzgrWju7F0NrpCBmdJwXuABJ1DwEHcbMN41IMRHQwqrj3VjyEKELImqQXUtVLpN4M3MU8WeO9jo+4Ojsn1cyxJqQ1z/ifPVvzJbt3ttQdDIl3vl5317xjK94vaeUWXmlgejtP814pSiym/lvzx7m+sTt6q67FZCdID0ZpYrcbRXZR6aKKClVSrQJbMl8LAP8BiJt6QmUxwNkAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Delete_Blue.4b24993e.png\";","module.exports = __webpack_public_path__ + \"img/Download - Dark Gray - Selected.cb0c37c9.png\";","module.exports = __webpack_public_path__ + \"img/Close - Blue.28d6758d.png\";","import speakeasy from \"speakeasy\";\r\nimport QRCode from \"qrcode\";\r\nimport store from \"../../store\";\r\n\r\nexport const GoogleAuthenticator = {\r\n methods: {\r\n getMFA() {\r\n return store.dispatch(\"getMFAEnabled\");\r\n },\r\n setMFA(mfaValue) {\r\n return store.dispatch(\"setMFAEnabled\", { mfaResponse: mfaValue });\r\n },\r\n generateSecret() {\r\n // var secret = {\r\n // ascii: \"tsrwO${Q)DUSb#3A*Ru]kgqq.9y#ac!a\",\r\n // hex: \"747372774f247b5129445553622333412a52755d6b6771712e39792361632161\",\r\n // base32: \"ORZXE52PER5VCKKEKVJWEIZTIEVFE5K5NNTXC4JOHF4SGYLDEFQQ\",\r\n // otpauth_url: \"otpauth://totp/SonomedEscalon?secret=ORZXE52PER5VCKKEKVJWEIZTIEVFE5K5NNTXC4JOHF4SGYLDEFQQ\"\r\n // };\r\n var secret = speakeasy.generateSecret();\r\n return store.dispatch(\"setMFASecret\", {\r\n secret: JSON.stringify(secret)\r\n });\r\n },\r\n getSecretFromAPI() {\r\n return store.dispatch(\"getMFASecret\")\r\n .then(response => JSON.parse(response.data));\r\n },\r\n getSecret() {\r\n return this.getSecretFromAPI().then(secret => secret.base32);\r\n },\r\n getQRCode() {\r\n return this.getSecretFromAPI()\r\n .then(secret => {\r\n var qrurl;\r\n QRCode.toDataURL(secret.otpauth_url, ( _, data_url ) => {\r\n qrurl = data_url;\r\n });\r\n return qrurl;\r\n });\r\n },\r\n getHex() {\r\n return this.getSecretFromAPI().then(secret => secret.hex);\r\n },\r\n checkCode(userToken) {\r\n return this.getHex().then(result => {\r\n return speakeasy.totp.verify({\r\n secret: result,\r\n encoding: \"hex\",\r\n token: userToken\r\n });\r\n });\r\n }\r\n }\r\n};\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAHQCAYAAACWQBBDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0xMi0xOFQxNDoxNTo0MS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMDEtMTFUMTY6NTk6MjMtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMDEtMTFUMTY6NTk6MjMtMDU6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Yzg0ODAxNjMtM2I4MS0xNTRmLWFjOGEtYzYxMzE1NmUzZDc0IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OTZjYTY5ZDEtMzhlYS02ZjRhLWFjZWQtMzY1YmI4ZWJiZjRiIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MTY0YzcwYWEtNDkzMC05YzQxLTllMTEtZTAyYmYyNmRiMWQ5Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNjRjNzBhYS00OTMwLTljNDEtOWUxMS1lMDJiZjI2ZGIxZDkiIHN0RXZ0OndoZW49IjIwMTgtMTItMThUMTQ6MTU6NDEtMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhlZTIwZDI0LTUwZmItYzg0Yy1hOTQ0LWUyN2RjY2ZmYjI0ZiIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0xMVQxNjo1OToyMy0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Yzg0ODAxNjMtM2I4MS0xNTRmLWFjOGEtYzYxMzE1NmUzZDc0IiBzdEV2dDp3aGVuPSIyMDE5LTAxLTExVDE2OjU5OjIzLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsfPx8QAAAbQSURBVHja7dzRjuI4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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAYAAACOqiAdAAAACXBIWXMAAC4jAAAuIwF4pT92AAADlklEQVR4nO3c61XbMBgG4Nc9+W86QdkAOkGzgbMBsEHYADZIJwA2iCcgGwATFCZoNIF7lHwqSYiukWxd/J7DD0hslOd8iiX5UnVdh9JStewMwAzAFMD5zsdfAXjtmnqpIykKjsDm9FMr3soALLqmvpPuqxS4qmWXAHgl/bDY7INXZtfUr4cvfPPbvDhTtewawIslGuj9L7T9XrKHow/9cOJuHg7xsu6qntBE+PfeVHTbbCvOMxroYPIofskSLgCayIXostnBBUQT2QxRsvqO6wFN5Gc2FdcjGs80C7ie0XjOkocbAG2TpOGGQkPKcEOiAXhP8qg6MBrP9+QqzhCNBWzCU9fU66TgDNFuaYEyFN5mAJwMnCEar4YFTcRD4N13Tf2OVGYOFmj7Sz/bxcuVZrXXNHv7j77iXNF4PFbeGy23/0/UcKegiXjAe6N1uPXuH6OF84EmQngzh2YcRUOscD7RRLqm5t91NxbNkKIhRrgQaCJdUz/ScEUXJRpigwuJRvvnJ59122rReCYuDQiRHtBMhiZGaIil4lJDQwxwPaBNfaNhaLge0Ph2z77RMCRcT2i6/TuhYSi41NEwxFE1EjTn/Yv0WnG5oKFPuKpli1zQ0FdXrVrGpzpXmrclg4Y+Ki5HNISGyxUNIeFyRkMouNzREAKuBDT4hjNEu08dDT6HI4ZoN7QK67L/aNDgq+JKQ4MPuBLRcCpcqWg4Ba5kNLjClY4GF7gRbRsruBHtM8ZwVcvmI9pnjK6Po1Nsz5q3FYMGk4qj27FVIKw0NBhOue4Udxbv3cNpm1TRoOuqdJHKH8X2xVWaiK6rSp+CAOB3qWhQVZym2ngXPXc5mZsDGjQVN1e9VjIaNHCyxvNq0z4J5jA5oUEGR+M22RU+S9tqyw0NiopTXaHNz8gbJ0c0KOCmkr9/2IzZQl/2MGS+DIDpaHohadPKtK2hz3YNnWMzB1U31T8ebPv9uFDgi9zyG9ZiB5LlGJysmzLVc9Wqls1oCPPL4P86zzhiyR4cTegbSdu+oNHV3NdUpaZPykoeDUcqTns0pa44s8QSyQINFnB80Dun7uh672c2aNidq1I3/RvgfzCaomWDhoNxnMttiapwsCcAl7mh4aCr+oJr+YqxyZNNU86mq3ropi0dda3nsalGVJzL6L04rN3YwhWNtZsKy7XuvMKIdSQTyUFhxNJkQt1UrOryn9WIpc+EBqfGy0VjAAD4B3i1hfK82RpfAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjQxOjIzLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0NToxMy0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0NToxMy0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozZDM2ODBhNi0xYWJkLWUyNGMtODZjNy0zZjFiZWY3MmVmNjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M2QzNjgwYTYtMWFiZC1lMjRjLTg2YzctM2YxYmVmNzJlZjY2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6M2QzNjgwYTYtMWFiZC1lMjRjLTg2YzctM2YxYmVmNzJlZjY2Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozZDM2ODBhNi0xYWJkLWUyNGMtODZjNy0zZjFiZWY3MmVmNjYiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6NDE6MjMtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4n2N6oAAABcUlEQVRIie2VoUsEURCHP0WLxSQYDWuwaDEfguUsBi0XTKYrq9Fm8E8wn8FkEgziCRazXQUVRBCLQcMhqOEz7Fs5jsN9u2cw+IPh7Zt5s7+ZnXmzqJSQ1IoYJsMJsAjcAOtAC7gA5sPaYlCESK/UjnoW1o563rMmg2Q0EvhWgAVgD2gAD8AdsAocAgnwPEhCQ2qZ87VAXpmoXsW5ClGptKpguPjIP1F/5O299FeJPoFt4C3WoWrXrQFt4APoxDhUqdEGcAycApNkl3gH2AIuyWbmWZA62fxs5rMuFqk6rl6EfaLOqu9B8ll5o96H5yO1U4YoVce6SHIi1Lq6rI6qTXUmBNAMukZeo6Tgc32SDdoEuO3ST5MN32IY/9Orqfs9We6H6Av9R4pD+cYcWeF3u3TLwAFwXeRchojwws2u/XSsY5n2Hgde++inorwj69NUX9RGjz5VH4P9V2o0AzwBE0DaY3sL9h8RS3QapN3HFtXeX2tLWtApLzW1AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Sonomed Escalon Logo for Light Backgrounds.a819caa1.png\";","module.exports = __webpack_public_path__ + \"img/Close - Blue - Selected.0d8aa0db.png\";","module.exports = __webpack_public_path__ + \"img/Devices-background-gray.d419aa0d.svg\";","module.exports = __webpack_public_path__ + \"img/Delete - Green - Selected.e77076ce.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAYCAYAAAD3Va0xAAAACXBIWXMAAAsSAAALEgHS3X78AAABQklEQVQ4jaWVTU7DMBCFXyP2oKyx6AKvS09AuUFv0B6BG9CegPYG5STkBqRrb6i8xionCJowjoxxx2n6pCiR4/kynr+MmqaBJKf0mF6X1nxK+65Eyq8qvo+lTUXGmyWAO7qc0rPBIACr4HkzCOSUXrE3XhNeSyoZbKf0A4CPEzbT0po6XvwHckrfAKgjb0J9U+BLa465o1UChHRNe/iDaZBTekexECBekzj4Hcgp/Qxg0QPitXBKd7A2Rlwj72dAQj2V1lTeo91ASGc7+rq9l1LdV1PyaH4hhDTPtUhvxaDDJaCwQk/2UkbHIpg3JBobbwNAVcEN6I/0yH22PwNyIIaP0TJ48cq1seYGzam1bUFUmQC2EYyqndpGSsCWbf+OER5cLz2PtC6t6ZKTmkdU6VIDUzI28XATf0eJgV/HA60VgB8pKmpg9nifBwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Pink.223b2d99.png\";","module.exports = __webpack_public_path__ + \"img/Multiview - Blue - Selected.ac7e17b3.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjQxOjU5LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0NDozOC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0NDozOC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplOTliNDU4Ny0xZDg1LWM5NGEtYTFhMy00YWMyOTIwZmNiODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZTk5YjQ1ODctMWQ4NS1jOTRhLWExYTMtNGFjMjkyMGZjYjg2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZTk5YjQ1ODctMWQ4NS1jOTRhLWExYTMtNGFjMjkyMGZjYjg2Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplOTliNDU4Ny0xZDg1LWM5NGEtYTFhMy00YWMyOTIwZmNiODYiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6NDE6NTktMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7J16GGAAABOElEQVQ4jZVUQXHEMBDT3RSAyyAQXAaBcGVgBj0IVwaGEAiB4CKoIQRCGKiPk6fbTBJvd8Yz8WadlbRyLiTxz4gAAoDiqibpXYFk4W8sJIfeuSuABcDDgSUL/TuAT7G4eRjchaieIBpJriSjyRWSDw+DDOBNiOoBqjuASe9bBAfrPzMIJCexmTdsuEEfd3K7ay+ZJMcqCW76mK2pkshKWFTbbbBl0xyT1LA1bwyzYU3NtNvANprVYBHySXkr1Xg0+JfOiFYNtmLfyjcAXzi+dPnqcgIwnAAIZh/xvFctPnoStaGXg3eDJEpaNPKNJJcL+/+iCOAbwKsQb6OoZtVzUn4C4P4XLXLLGQtqwKNxVvI2aHch7chXZdus5xbZY9Ptx2isupp9NHXBnvPMwMaApzWD9hXAfHbgBx7eLM95V6QZAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Close - Green - Selected.eded00fa.png\";","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Pink - Selected.708d1aec.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAACHCAYAAAC/I3MxAAAACXBIWXMAAC4jAAAuIwF4pT92AAAIE0lEQVR4nO2d7VEcORCGNZT/LxkcGZwzMBksGdwSwe1FcDiCwxEcRHBMBiYCQwaQARPBXA2lpZb9mu6WWmpJ71PlHy7vmtnZp5oeqVvdjePogA5dP3x1zl055y5xi1V48n8exuXibfoBEFqBrh/OnXO3zrk/qvtwNhmmoDEuF08QOjJe5p/Oud+r+mD2maS+OGv9LihwC5mzsJjSOwgdka4f7pBmZAUROhaQ2QRvEDoCkNkMeCgMpeuHtXPun7I/RR2My0WHCB1A1w8ryGyGx+lCvrR+F6R4mf9lvH1aVppSkwdbn8Qc07Lnf4KLer+vEFqAUOb3hX8zH8IgW2v4Et7fh5SDCWRW5U64hj9s7i+EZuBrM24Zb4HMRPxK0VL49o80DkIT8TL/9DtSFCAzkQjLnh9pCoQmAJn1iLSGD6GpCGSeWEPmebp+iFGR+DouFy+bv0DoE/in7gemzNfjcnGX/GILwz9c/xnhqj+tikDoI2wtIf3GeBtkJiBYKTrFp3V9CH0AYU0zZCYQWWaHCD2DUObvkHkeBZmfN61XGyD0PlyZ78fl4ibVxZWKf7iOKbM7tKsIobfwS0hcmVfqF1Y4WytFsdmri0H5qEewHgqZCQiXPUlM5aK7r0OEhsxqaMq8KRfdpXmhBTI/TxsnipdUBV0/XCjK7I6V4TYttO824cp8uftkDfbuq2RDisvBnLzZHFqwhASZCSQ6l2QqFz0/9A9NRmjIrEPCQ3aOrpg0J7SwQP8KMp8m8YlRR9vYmhI6oNvkhfDa1nlIeGIUIjS6TfTwK0XfEv2411MBpgmhUaCvR4ZDdk7uOFYvtHBxHzITyHRi1MljIKoWWijzNWSeJ+PxZ21G6K2nbnSbRMY/XOeQea9cdJcqhYbMeijUNHOYPXWqOqHRbaJHZpkdpQS1qq3vgG4TFOjPYEDmg+Wiu1QToYUyo9uEQNcPl7llds71lBfVlHJwZ5ugppmAXymycGIqqeOlCqFRoK+DcoE+F5LQxefQkFkHYzJP290XlBcWHaHRbaKDMZkdp8G2WKG7frhBt0l8EnWbcKlbaL+E9DfjLZCZgPD4sxTUKzS6TXQwPNL5mVOPXpTQAQX6kPkExueTsw6oKUZoyKxDAcP26xNacC4aCvTpmB62Py4XrE0d80ILzkWDzEQKGOl88HSkU5gWGq1TehQyn5y95W5WaOHi/goyz1PQsH32iaUmhRaei3bNzbdaRLAhlYtBEpzMCY1BPXoINqRyIgpOpoRGt4keFgr0mYgOSDcjtFDmvyDzPAXK7IoWOqDbhHMSUpMUKvO99Pg1KxEas00UUBrUkwJxW1x2oQVT+CEzAcVBPdpchxyOmVVodJvoYLBAn8p96DNRthYsgcyP43JxqXhJVVC4zMHBKkuEFkzhn2qarxQvqQpal9nliNAo0NehgDLQY0RNI5NGaMisQ8EyR29aTiY0ZNahcJmjf79JhBZ2m6wg82kg8z7qObR/UPnFeAtqmglA5sOoRmh0m6hiunXqCOoj8tSERreJHgUV6G+TZESeitDC9dAryDxP4TKrf7/RhQ4YB1Fi3UFSIPM8UYXGbBM9CpXZpf7NG01odJvokXHqVCjJf/NGERoy61Fogb7L9f0GCx3QbQKZZ4DMfL5E+D8w2yQyfkjPmtn4YIWsfZ5BO4UFP6gAHbIHK3HK0fXDGjKDLUz85hVFaJ83vxRYSA50MJNGSiP0GjIDj6lnIqnQeKgDzo+LMOUCW2h/kKK1oTIgPe9loNbuuyRCo/MamO0mkgiN7uu2Md0aJ9lYoUTo6UOjfYrOeSHF+uYHMbGE9nXOs6sb43LxNeiqGsMfQm5d6CKminFTDkq6wR70Apz1AFBMNxFXaEq6gUJ9PpYftItqjSML7XcHvxFeijknDKhpXCaK6/PkRGhKFBENemkcy6tG69K+z9hCI93gYzXdKLIBA0Lnh5LGpabYbiKS0H67m7KshPyZQdcPFtONolvjqBGaEp1ftQ8RqRBr6caP0lvjYgqNdIOPJaGnMtCoR9vmgCo05Vcj0g0GfhnUyu5gNX2es0Iz1kkRoXlYyZ+ralqmRGhSMRLOcmZjId3oa+vAjyU0ojOf3EI/19h5RBGacjYE8mcGPo3L2fVT7biPk0L7A09mwcmhbHJG56pn18xFaMqNR7kon1xCVz+IaU5oLNfpkENo9XEQFjgqNGOdFOkGA5/GpS4XTTIOwgKnIjTKRXVIHZ2bml0TKjSiM5+UQjc3iOmU0MifI8Po+olFc4OYDgrNOB0JEZpHyujc5CCmYxEa5aI6pBK62XEfIUIj3eCTQuimZ9ccE5qSPyPdYMDo+gmh+UFMe0KjXFQN7ejc/CAmdyRCo1xUB02hMYjJIxUa+TMfLaEh8xaHhKaUiyLdYKBYLgqZd/gkNMpF1dCIzo+QeZ/dCE1Z3ehTXFhlxBb6GQfPH2ZXaNRv6BBT6OprmkP4EBrlojpELheFzDNsR2jqdjfKRXnEis6vkHkertCIznxiCN1Et0kMtoXGdrcOoeWizdU0h/AuNMpFdYhwuihkZrKJ0NTtbpSL8ghJNyCzAI7QiM58QoReQWY+G6GRP0em64dVQLnoVAaKehkBnXt4m+oMfhV35fXSfE1zCGcYRm8KyBwIhLbDd8gczlkBY3lbYCoDvWn9JsTgLPOxrgA1zVE58+udIA+QOTJnWI7LBmRWYBJ67Su5QDp+QGYdunEcN7XQK7/icV7jB1VmrgBpSuue/J9blBAo4Zz7H8VG6PnOCXzAAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/Manual Exam Upload - Blue.e0948b47.png\";","module.exports = __webpack_public_path__ + \"img/Diagnosis - Green.309f48f5.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAYAAACOqiAdAAAACXBIWXMAAC4jAAAuIwF4pT92AAADKklEQVR4nO3c23HbMBAF0JuM/6NUEHYQpQN2EHYQuQO5A5WgDix3YHegDqxUYKWCkBXAswowIzMkHgRAAgvdGX6JhMxjrMAnPgkhUGBWABoANYDqavePAE4Ank0kpcER2FYuXzTrdQD2AHZjK5QEt5Y96ZvDNn9kzzz1P/gc9m9LNhsAr45okOu/yu0/pAQ42ulHzzYe+3jcSzUEmkonB5NL2XKGC4mm8lv+VrIt1RholO+qZDn2uFhoKjTSVtzgYqOp/OBUqnOhUWoucHOiUVYc4OZGuyR3uEXQkDncYmgAzrmOqkuiUb7m2ONs0LqI3/8EoM0NzgbtQZ5TxsL7d42OSjWTZSPMOVzty1oI0Vps45Kdap8rWgy8D+1zRguJdxJCrHKC80ULgfcfWupwodDUUodCSxkuNJpLu0a0VOFioall64uWIlxstEqieKGlBhcbzWaAsEJLCS4rtFTgYqPVodFSgIuNZtO+M9rScNmiLQmXNdpScCmg+bS/CBwLtLnh9lzQ5oQ7cEKbC44d2hxwLNFiw7FFiwnHGi0WHHu0GHA2aDuP9pNACw1ng7bhgBYSrii0UHDFoYWAKxLNF65YNB+4otGmwhWPNgXuhjYBzuYOeBFoLnA2D6wUg2YLRzc0zpodaktDs4XTXfJu5V3yotBs4CrDThXX02zhdKPovlQ0E5yut7UeN3OzR6NF957D1vBZO+EdAZv3FJ6GZl1ILbpXktqRSU3oxYtqAhwbNGhegqs1M8HQpCdFo0ED12i2oalzXMIO7ZKRH7+x52TPjj+isR97WGy5G7Cs5DQRQzk6/E8OAH4Z1smvp8kMlaquTI3Tg13NBmNCe8gV7ZKBrv6sOXbTlUYjhDhalKbwPONIslRpfrWfI8ZDvW0te03jMFPWvSzjrNOHsxlNqRQbRyxWaHCA6+TZQmOY6U8XNmjonTlQmf6N8B0KnQ0aeqOqrkynpJOHG2tuaOiVaii4Fwllc+iSbVSp+pbpi4Sach6bZVSPm3IgWhzWdVzhisa6DpUqnZu+ada5YQ3kbmRQuGEZQj3uJK+IKKjjDcscgqsdLxcVHwB4Bxrd5TbWi5BiAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/gray-90rotate-icon-01.10d201a6.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAsCAYAAADxRjE/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTZGMjJCNkVBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODkzN0I4RkFBRDBBMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NkYyMkI2Q0FEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NkYyMkI2REFEMEExMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiRkq0gAAALzSURBVHja1JlJb9NAFMdnJmE5ILXhwBWp5cwiDqGmQkkpH4EDSMRpkTj3yEegN3rk0qSAemk/AUKkPSQCiS2coUhckShFHFhqD/+RPMUeL/ESz7RPevJ4FvuXv5/Hbya03+8TA9aGd0XBsqzMg5kBYAHbkdB5jBlQ2PbKdl5wZkDlNd+5PRgMukchPNpFwU1AFwY3BV0I3CR0bnDT0GKezgxuHNqzJfintODGoZ/1X9U4IdsoTitNseBGoX/ySu0UdXqUkPO+6pGKm4SeFMA4XpAVLiGPEePnRsW4KehJ+JYKPGtZtnw5XUKfxIGzwwYsbdaaaf3hdD0KnGpOTUPAsBUouxQ3oNd/uX6Curd8VQs6lb4If68ALyQBC2tevXJ7n9Cn3uka+neZRmCh8Nn/IUEX06am16yZO6K/9yHSEtMSeMIPzAjvZLkIYryj60UMAeNR380KrHOejgSuEr5a9MLsqAGXBd3wAyOv+IH59vq4gMuAFm93zw/sENo4TvmLcd6EjRn44AWTwFD43bgfJSsL+DdnzTKAVej2OIBhewL4JHXfljUtsYK7PiHgX5zNlQksofPu+qgh8WXPrcyXDSyhQ7s+KcAfKgoPv7rHLk0w57WORKaqxLOtHKPivOtrFwp/APDcGfb3m650kSXtQUQoHgD2FG7qBPYrTVIoPlLher3OK5XKBoo34bvw+/B78MuijJXHsrecwnAS2w++nHWejlL8YwRwSGEAi0MNftqDeuQB3IA/AOyUr3tsP/hUno+LCj6dISQ2oeiu4zhDcYLyBvy51zbv6yfqhcpv5Dk8qt/I8EgKFbkn0QDw97hBnHOpupMzZHnRz3hIcaycV5IGUErT3pzG1DsJbalzjwA4BrT2g3sSqskdop2ItoM613VleUc+HfljEFqfE39thi2EwOwhNlOwbGoVnb7K/ndLUZxjhRwIHW2WNTUNhYoJ8Dz5dAgcmd3iYYdWwYfI7FZ1QleLrFYQGkMWzPa02D8BBgBVTDzzfC+74wAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/Advanced Search - Green.721391fe.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Nzg2NjdGMThBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Nzg2NjdGMTlBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3ODY2N0YxNkFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3ODY2N0YxN0FEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt4FRIgAAAG3SURBVHjavJQxLANRGMfv3CExMAlh0KEGk0UXQyMxMJHoYjCxdMFgsLCYDKbO7WKxMBDRJgwYbjBKRILFQGwoKVXp+b/kf5eXl9J316sv+eW13/vu/d9933ef6bqu4TiOoWkToGCEsBauR2Ac3IB5kAUXYIRrlnFPRkjzhGJgH9yDDJgFJXDKVfzv5+9QZnOdAWMgx0OF4B1IgT0QB2+NCJkBa9QOOkERuES+tAk+JZ9Ln/9GPeAdVJhO4bekYGFtoAO8SnumdOg3qCri/vN2o0X+w4TwA7gWabeN5pk4e4D4Xdd0+zchL3V9LJpFcfOX+DILXmRMK+OtOpe2PKFnqV29lqzWEDQlX1lpZa03+giYiTmQB1/8LJpSoyVwyOHaC5JgA6yCK87MYzLJ+Zm2Q4hs85AEfS8UEXbOmfnI+u2CE7BlBxTJcdAmJP8lmObkEOlcAGcUGuUzKW/WxeuIVDhoRdyt5B/k8NVuBp3gJG8r2zrY5JjREtKxYYplJN8U2IlayOCBy0rqIh9BXeww1WJRCqXBCjhQ/KLL1rgfSeqG+G10g0Vlr8T9SIQKJF9jT6u9fwQYAJwBb9oHtGF0AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/green-180-rotate-icon.1fed1ce7.png\";","module.exports = __webpack_public_path__ + \"img/Drop Down Menu - Gray - Selected.97da7dfd.png\";","module.exports = __webpack_public_path__ + \"img/Advanced Search - Green - Selected.eae9b9c5.png\";","import mod 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/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SSOBody.vue?vue&type=style&index=0&id=040a219a&lang=scss&scoped=true&\"; export default mod; 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/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SSOBody.vue?vue&type=style&index=0&id=040a219a&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAR8AAAHKCAYAAAA6pE/RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpkN2MxMmRkYi1hOWJjLTUzNDUtYmJmYi03NTgxOWE2NGQ1ZWIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDk0NUU1N0VCQUZEMTFFQjk3RDJBNzNCODVBOEE4REQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDk0NUU1N0RCQUZEMTFFQjk3RDJBNzNCODVBOEE4REQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmZmOWRkMGFhLTczZWMtMTg0OS05MDgxLWQ1NTM4N2EwNDI4YSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmZmY2NjMDNjLTE4MmEtNmE0OS05NzcyLWE1OWIxYzIxYmJmYSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm1uto4AAAv+SURBVHja7N2PTuPYFcBh7M120dIM4Xn6mn2ovk0Hls0OhcaNpUyFEH8SJ/a959zvk1DVdgiJff3LuSFA989//eMKjvC8/1gd8e9e9h+/Olx8ZeUQcIThxDU1/vvOYUN8uHRgLnF74iQ+CE0V90GMxAexESPEh9zBOfb+C5H4IDhChPiQOzhCJD6ITvXHQITEB9ERIcRHdEQI8UF0RAjxER0RQnwQHRFqVe8QCI/ji8nHRYEpyOSD8DjumHwsfkxBJh+Ex/lAfCx0nBfxwQJPcn6cI/GxqPEkIT5YyM4b4mMB4/yJDxau84j4WLA4n+JjoeK8Ij4WKM6v+FiYOM+IjwWJ8y0+FiLOu/gAAiQ+Fh+ID8KDdSA+FhzWg/gAAiQ+FhmIj/BgfSA+IEDiY1EB4iM8WC/iA4gPnsWwbsQHBEh8LB5AfMATmPhYNID4gCcy8bFYAPEBT2jiY5EA4gOIj6kH60t8AMQHEB8jMVhn4gOID4D4GIWx3sQHQHwA8QFbL/HB/hvEBxAfAPEBxAe4lKZfb+ydfEB8APEBEB9AfADEBxAfYJJmv+MqPoD4AOIDID6A+ACIz5n8XBeIDyA+AOIDiA+A+ADiAyA+gPgAiA8gPgDiA4gPID4A4gOID4D4AOIDID6A+ACIDyA+AOIDiA8gPgDiA4gPgPgA4gMgPoD4AIgPID6A+ACIDyA+AOIDiA+A+ADiAyA+gPgAiA8gPoD4AIgPID4A4gOID4D4AOIDID6A+ACIDyA+gPgAiA8gPgDiA6Sxavixd04/mHwA8QEQH0B8AMQHEB8A8QHEB0B8APEBEB9AfADxARAfQHwAxAcQHwDxAcQHQHwA8QHExyEAxAcQHwDxAcQHQHwA8QE4xeqMzx2++P+7AI9/sAQoLMN1MukxrGa8WIfKD67wUMs67IJfH8OUEPUn3PhwxoNwoUOsIM7+uauZ70ikSQhEZ8FrvV/oztjuQBvhOfo2+0KRECDIHZ4vb7sXBxCeEl+jLxgegYP84fnwa/UNPXigIr0YgKmnxNfsGz0IQEWTjwiAqWexr+0HS4Hik4+tF7B4fFz8wOLx2TkMQIn4+EFPoNi2C0B8APEBEB9AfADEBxAfAPEBxAdAfADxAcQHQHwA8QEQH0B8AMQHEB8A8QHEB0B8APEBxAdAfADxARAfQHwAxAcQHwDxAcQHQHwA8QHEB0B8APEBEB9AfADEBxAfAPEBxAdAfIASBvEBSnkWH6CEVcvx6Zx/KMfkA4gP0IzH3vYDKGBt8gFsuwDxARAf4GIG8an4oACz2pl8oLxmv9ssPsDS/vs6PrY8wFKeXsfHGw0B2y4gtReTD1DCyuQDlLCuMT5Lv/Bt4qMlVX1jyeQD5TT95Cc+wJJ278XHe32Auf14Lz5e/wDm9iI+HjdtqWVn078XHwcJPOnNbV1zfIAGiI+tFyxl91l8bHnAk91cfnwWn1oOighCvuvpOUJ8PBtBPt8+iw/gSW4uvfgAS9t9WqLK9ocl7oetF9nUcj1vj4mPaQg8uV3ai9AAJdxFi4+tF6ae+Fuud+9HX/mdBuL765T4tP7sb/rBerqc/0SNjykMYl83d6fEB89WWEeXsPvo/+hNHMCMtlPiU9NUVCqEph8irp+aBoebCIEB8umnxsfWy/SDdTPV06QqVXgABwsJQm25/soSHzD1xHJ3TnxU3YIizjqpaep5+uofeMEZWHzLdWx8anvGN/1g6ql76vlyy2XyESCsiyJbLvGx0KDIluuU+Nh6Qb3XR7gt16mTjwve9IN18JXtsf/wlPjUtkUbLDyc/+qGgpuoQbEAIa6TQti39GAFCFPPrB7mjE+NF5nXohCeOmzmnnxc7KYf55m3tqd+wpT41LhVs/2ipfNb4wBwc+oneMFZgHBez7Wb8kmZ4jNYqDRwPmucerZTPql3cQkQzuOZ1q1PPjU+K3QWr/Akn3rup35in+jE1HyCBEh4Mq7r0WbqJ3rBWYAwrU71cM4n90kvqKHihY0niCzr+bZkfGomQAjPfB7PvYHexWS0dy6ciwnW595A9td8hgALH8e/uannkvHpnEDPvMLTzLpdX+JGWvlu1+BiIFDsa16v95e6od7F48JwbDnB5lI31NL7fAYXii2WdXqW75e8sb6xkzy4aEw71uck40+u313yBvsGL5jBBSQ61uXJtpe+wVZ/vGJwQYmO9Xi08S+Qri99o/2Mi8AJn/cCE6IcYY6wDq/nuNGVdRv+oosc0uxPcBk8zHXDfeOLY0h0IbYyDWV6nEOA+3c7142vFlgoEQ5wl+zizBjXbCKcmz/nvPGViztlgKKHKPsEF+FcjN/dWs/5BZaITx/kYA/JF31X8QXQ0us3UZ4Ebub+AqsFF5cA1T9dDIW+rvDU5XGJL+K7XW0HSBiEZ/Ht1ustkYUdd6FgPYXbbpWIjwAhPLZbxeIT7WQIEK2sn8W2WyXj0wdcQCJE5jUzLLndKh0CP/yHaacefTNf1MLC+qjGfakvXDI+fgoZ4Slr/FUZm1JfvPTkI0AIT7n7fF3yDtSw7YocIBESnahroG/+DgQPkCnItBPRYw13wgvOFiJtne/xl4Ota7gjNcWnS7AgRcg2q2bjC8y3tdyZ2iafLskCxbRT4/2/rukO1bjtyhIgETLtuNaDxSdLgETIuTO1BYxPpgDZijlfpR9Llde573Z5JiXvObqv+RqvPT6dBY5zMjk8m5rvYITJp7PgcQ5yhSfStqtLfKGKkGN+SQ8RwhMpPj/v6+CCwDH+UFVvIswUnxYCJEKO6TnhuY50hyP+6ZwxQLurtv6qpT9pc97xyy5ceCJOPi1NQKYhx+oYjxHDEzk+0e/7uReWEDkuo/G7Wuuodz76XyztGr4QW96WiW+Qb6dnjk/rAfroYuwaeIzCE1yWv9XeWaBfXqj+Wmyec7vJ8EBWyU6MKShekJyv045Vmtc6VwlPkADNc+F3M90ujUUnc3wEyISSScj38Bwj87ervTGP6MK+h6f1+PwMkAgR0ferwO/haXnbZRtG5O1tE2+gbeldwgJE7Z5auiZb+xEFvzaWWo1vHLxu6QGvGjzJ3pBIbdus0aa1B97yJGAbRmmPh2uwyeuw9W1If+W7YZQLz7rlA7CyBv4/BbXwC8oob7v/uHEYTD6mIJaedoRHfD6dgrwWxKWj07W+zRIfUxDL2R2eyERHfCZNQTDF+L6dX1xjH/OC8/EB8oI0x26xTDriM8uU6PUg3vO8//ibw2DbNfckZALi6tVE/Cg8Jp8S2zGTULvR2dpiiU/pCAmQ6CA+piBER3zajZAQ5TG+kPwkOuITMUS+RR9T2l/cXgvf7VrmGItPHA+H8yU8Jp+UWzLTUH1TzrOtlfi0NHF6Xaic4TDlbBwK8Wl9GhKiZYLzx/7j1qEQH4RIcMQHIUpjfP1ma0slPlwuRGL0vp9vABx50Vh8ECOxQXzEKH5oXvYfd063+BAnRhGiNBw+tofY9CYa8cGENDe/+a9RfrwCEB9AfADEBxAfAPEBxAdAfADxARAfQHwA8QEQH0B8AMQHEB8A8QHEB0B8APEBEB9AfADxARAfQHwAxAcQHwDxAcQHQHwA8QEQH0B8APEBEB9AfADEBxAfAPEBxAdAfADxARAfQHwA8QEQH0B8AMQHEB+AyVaNPd7h1X92b/73znIo4rf9xx8NXW+/HD5Gz4eP0cv+40588sXmre6L/85yfj18tBre396s1+EQ41vbrrjRGVzXBDQ+EX47rN8/xSfHtAPR/H5Yz/8WH+GBEjZXCV8XyxIf2yyy+/v+44f4ACWML07fi4+tFpTwLcsWLHp8dtYijW7BxKcw78+hVeGnn8jxsd3C9CM+QAHfxcfUAyX8Lj5ACaF/Jk58ILaw3/EVH4gt7A+fig+YfMQHaOcaFh8w+YgPYPIBYrgRH8A1LD7QhGfVXJ6fZoerq634ACVsxMf0A0t7jP4ATD4Q01p8TD9g6ml08hEgWgvPOsMDse2COJ6yhCdTfDoTEMmN31a/zvSAsk0+AkRG4+9qvsn2oFYJT9QYIL/jmSzbrOusDy7raz62YUT2eFi/15kf5Cr5SXwbIBMRtRr/BvumpQf8PwEGAMmnF6f1zsW9AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/gray-180-rotate-icon-clockwise.00ba99a1.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAqCAYAAADI3bkcAAAACXBIWXMAAAsSAAALEgHS3X78AAADsElEQVRYhc1ZMXLTQBR98jCUKOQC9qSkSW4QF6GgkivaOBUlThW6iC4dTgkNTk2BVUNhDsBMcoEQHwBinWCZr7wV32vJkhxJ5s1oZEva3bdPb//+XXnGGJSBF8U7AAYA+gB6AA5VsTmAOwDXPKYm8BelKq6IQsJeFAu5EMBxxbpvAIzrJr+WsBfFQvQ8h8yCqu7wkI51M56NSXxcB/FMwnz9EwCBujyn0rmKsVyf1pHDd4iHJvDHTRAWH+4/piHl+dBRXt7O0AT+dS2EvSieKL8+qnJV55C20IqfbqL2EmEvikWRr/wrFjioa8BQcVH7rbp8BWBUpY2UMCu8owpig/5jlc0hPuD4sGrfsK1SpDvq90hVEjZBVmACfypvjkTBsTKjYIVIFHbUnZvA7zVBVoNtztTgLqW0VViHoLBpsnhQesEQqJWeFJWzhPs8xybwCwvVhG8m8G9/v3o2VaQDTlalCc9aIit4CeDN7lPvBd9wzOvnXhT38wpZwjawNzLQcvAcwAWAdybw70jaYpI3CDvOjTYV/gNgj6TF09L2Je91GbVW0GHiUgVHUr94kOcLHoYkjlhX0XNiCQ/Aa9V2yAkLtMZKtOrwdViUIb/H8xc2esZru7z2seJzKRg5tLIrA9B62Br+oILSnwB852853wP4qTpU9bkEnFh+8O+xq7IlbL07wP8Brewoi/CU5/0s37QNDkDr5WEeYWuLopTvds212w2ey4Pl4TNhSqCzNb0cOmlxxssEw+09712ZwE+UTrM1E/ihmiI/M+neGhgx7OBLZ76OQ6jvkJ5s2dN2bHW9KE4i2BLhjAxKlkq/SHxoC7UIPfMmbecu8+npkbMOK8Kc+Yg0NKllWR/FluClCfyRa4kU9LTY4VQpXoQutwY+yIKgKFUsCevj9Qpn9HSHhQ6cKbynjqyNFGlwsKnaXhSPuXBNVkJPyhZkg7N1GV3OXsQhVxKbzqK2o0l9uZbYBNIpid9cE75XVchKIjNdLIGlHL1WwhocAyfqUrhhiEytJOUbI4wH0hOVlPslpv0iNEtYIKFIJTLBuvVaibpmjRMmtH+r5ihLHWyFsJOUdyvGZ+v75C21pTAclc8rTPNW4SRatEaYe3U61E2L9tOYB9t4niRCpWe6uuBslufup7Ez1yQsi4uePNemJSzc/bSZG5/VRqFVN/0+0rrCitBUfTqLGT0WzFOGev/YBH7q960QTht/mK4lYuSlsBE/Wfyb7bZJOCGw+sFSYD9OLidaAP4C9nOgxoMZzqQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAaCAYAAAC6nQw6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjM2OjUyLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0OTo0Ni0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0OTo0Ni0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiMDZkZDUyZC0wY2U1LTFkNGQtYmI4My1jNGM0ZmNhMDBmZGUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6YjA2ZGQ1MmQtMGNlNS0xZDRkLWJiODMtYzRjNGZjYTAwZmRlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YjA2ZGQ1MmQtMGNlNS0xZDRkLWJiODMtYzRjNGZjYTAwZmRlIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiMDZkZDUyZC0wY2U1LTFkNGQtYmI4My1jNGM0ZmNhMDBmZGUiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6MzY6NTItMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6EI3nEAAAA0klEQVQ4je2V0Q2CMBRFTw3/soEjyAaOICMwgiuwAY7iBoxQN3CEOsHzg1dpSgtI/OQkJH2P5r5bmlyMiDBDBZS6doDN7hSR3NPJlC63v1C9WqeHTq7AI3BxAxp1FtIBLjf5F6yIlEYWPtJK2gJo/yDUGzXUA5eNIgbgkHjxXqiTvVjoyXCDIbX2PXeG25sVconpcd+l9qWOtoldaBfahebR8O6D6HxFURrXTuPVg4h8HdlA+xTNiusjcNb1mEuqWEZT1tJ4Rz5qPRXjD3EJS5BLH2zNLcOQgBBPAAAAAElFTkSuQmCC\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"content-class\":\"escalon-dialog\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-toolbar',{staticClass:\"escalon-dialog-header primary\",attrs:{\"height\":\"35\"}},[_c('img',{staticClass:\"modal-axis-logo mr-2\",attrs:{\"src\":require('../../assets/' + _vm.coloredLogo)}}),_c('span',[_vm._t(\"header\")],2),_c('v-spacer'),_c('close-button',{on:{\"click\":function($event){return _vm.$emit('modalCancel')}}})],1),_c('v-card-text',{staticClass:\"escalon-dialog-content\"},[_vm._t(\"default\")],2),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"modal-cta\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.$emit('modalConfirm')}}},[_vm._v(\"Confirm\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EscalonDialog.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/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EscalonDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EscalonDialog.vue?vue&type=template&id=76965220&\"\nimport script from \"./EscalonDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EscalonDialog.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/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VSpacer,VToolbar})\n","module.exports = __webpack_public_path__ + \"img/Advanced Search - Gray.b2eb8c3c.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsSAAALEgHS3X78AAACLElEQVRIia2WoW8UQRSHv902wSBGIBAIEkioPEcTECdIqKjoJhUVkCArKhAIJOJEEwSISsSJCkhI1iBOlhCSkpSk4kjKfwBuSBCII0Nm85v0dbu3u6X3M7cz+2a/ee/Ne3NZCIG6stI/BB4BQ+CGXs+AKfAB2AuF+3luYYvOgLLS3wLGwP2OdX+AEbAbCvf3QqCs9Pe0W2fenwBH8uaaPLxq3r8HtvrAKpA8OTKQQ2AnFO7rGePSXwG25U0C7ofCPe4L+mTC9TbmJ+0yK/0rYANYD4X7prk7wAFwXWuiV+/aQLkSnyCHFiINgJsKXaVQuO/ApkIa9aLLo1ynK2mnb3JD4T7L+6gV5bgVNNTzST0nPTQ2Jqtt5sumTuJhSDkZGJv0/DorvTfzz9Oa5FUXKCnFe0M5qWtQG6+Ewn3JSt/0rUbQTL8p2es28dETQZ4Cx2Z+qrJIst42gqb60DDWSTrCSSZcx6FwH2vvNs3QbuKccnUDVIDbbcY1yBLwTMMYlUkXaE+9K2qkYuyjXeC27Pa7mmwug5Hx6iAr/V1jE0/XE4W48iQr/UvjDV3eYFrQkoovxXym8Rvl5pcS/0CHon6UfwNrKuL5IE5jPq51iouoFZanh9h61IW3dD3M00wbWgN+GJsY9sm8VtR4w3J6P60qTMuqk3iEJynxDV18bhjngvqqLyz/b4KkK2PYFcZLg+gJWwioC7ZQUAusanELBTXAqv8fcf7Sp66XgH8gRuv51tWmXwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTEwVDEwOjM5OjQzLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0xMFQxMDo0NzowNS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0xMFQxMDo0NzowNS0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2ODBjYzU3NS05Y2NmLWQzNDctOGFlOS0xZjZiZjcwOTczYTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjgwY2M1NzUtOWNjZi1kMzQ3LThhZTktMWY2YmY3MDk3M2EzIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NjgwY2M1NzUtOWNjZi1kMzQ3LThhZTktMWY2YmY3MDk3M2EzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2ODBjYzU3NS05Y2NmLWQzNDctOGFlOS0xZjZiZjcwOTczYTMiIHN0RXZ0OndoZW49IjIwMTktMDktMTBUMTA6Mzk6NDMtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tp2fwAAAAs0lEQVRIie2VzQ3CMAyFvyLudISM0A1gAxiBTWg3YISO0BEyStggTPA4FKQe8lMEEVLEk3yy7O9ZtpJGkgEMYblnpJSq90jqFdckiUyMiXq7XdCGgIMx4x6gj0x5AVhOkHP6bkiS3axw+JHqAdwL9L4BvpEE8x27LwMM4F6AYqpnyX/AbwEt0BXo3QFtydfUl35Nd1DLkotq+SfbQP4KTJkeJ+DMfI1JwD6QdysAB+AYSz4AoV0F7LR7CaQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAYAAACOqiAdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg4NzhFMDBBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTkzMEI5N0FBRDBDMTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODg3OERGRUFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODg3OERGRkFEMEMxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuulxA8AAAL2SURBVHja7NzdbdswEABghvC7s0G8Qfyeh2iDaoMqE8SZIM4EVYG+J95AmaB+7FudDdINrA1KwidEECzyRJGyeMcDDkEiUYY+HMUfKL769edOMIxrlbnKTOWq9fe9yoPKynaBBUOwDeTyzPF7+FmrLFVu+y4kGaGtoZqee9DasYTzPqEdW7hC5V+VNwPb3UC7giOcvunXkdd47eLJhIaOst1tZUJDh37uvVGH843WxG3TZWVCGxxbinCh0ZqRdi0TmlNkMqG5rUBkQnMLmdD4wV0MTa9hZUJzikoSRasDfv5O5VESRHsSpw3KUHjRTYAxaDtYjB8C4b2I0x5dNHBYtKL1u2+8nWjtCEuiaL7xPsRpuz2a6cgYNF94H9D+GAucD7Q2Xu4Lbc5wPtGa2Kt88IE2V7gQaE28wXRlFNoc4UKi6Vgh2lrRdCwYoa2huy7Hos2p4qJCmwtcaLTMN9oc4EKj6Xa/faNdGm4KNNv1ndAuCRc12qXg5oC2gwHj6HoTkilaMfZGpoQrqaBNOQHWS53vVNCmqjhyaFPAkUQLDUcWLSQcabRQcOTRQsBh0F5iR/M9HcGgPYjWe7SxovmsOFZovuDYofmAY4k2Fo4t2hg41miucOzRXOASmgPcJqENh8tU/khow+CuLSA1NzTskmsr+v+zuIZqPHBCw1TcSuWj5bnHDg0DtzUc+8mte2LhVoZRtLagkkazwW0sx45c0WxwhaHaKs5oJjg9Uva94VM5VBspNBOc6Q3tkjuareLOxb+B04+SIlrfBFiPprc95+89bwhEidZXcaZuihkUmpWEDe0pVrS+isscR9Mcpin3iM8ds7adJZxe0H8bUG1rqJpc4L8pK3q0c3CY0TSD84ZgkUIbAldDN8yF/UvryKN1BwdTN13Cw94FraaG1oXLPV+7Fl8vKZNC63ZVX3DvAFUJwrFAdFMsVuW4jo0arkhYYeFYY3XhTGvThGWAyxOWG1zRWodWsAOSsBBwGzFsuyiFiv8CDAAp0hf0sL2MMgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/AXIS_Favicon_green_142x142.5a010fc5.png\";","module.exports = __webpack_public_path__ + \"img/Edit Patient - Gray.0beb849e.png\";","module.exports = __webpack_public_path__ + \"img/markImages-Icon-green.98d974c9.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQ5MjhDMkNBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkY3QTMxQ0VBRDA4MTFFQkFCQzlCQ0JCRDQyRTE0NTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDkyOEMyQUFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDkyOEMyQkFEMDgxMUVCQUJDOUJDQkJENDJFMTQ1NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjVx8z0AAANYSURBVHjazFfPTxNBFJ7ZtlBriMXEGwmIVxOLmHBQE2vowZMlptxMCCZw4KKncjCxmBDhJBpMFBX0qB7sH9DENeGACVX8A6j8BbQHDb9Kx2/MWzMZd9ltd9S+5GULO/Pmm+99894sX1y7yEJYH7lqG/Ba0ABTQ6uu/4+2ACYJvw3PwrcIiGoLyvNVqztuFtgYvNBg1ozFGimPMYUD0XE6xvfv0QbGXMCbAyYYfy3Z2hWJgWP8R/WosQD1jQBJ8EVitylwVkBQMw0WsTgT1/1AuegtRSlNGQUGQGk8rkRY/WaLcqkRe0XSp5lUWuxwZUccvwqm/ng3enb5VDLe88DisVv1xu7dF+Vrs17MSSmAcam5QmjGJFsI+BGgKq7HM97zJhZJ9EasGOuMdtWPigVtLpDWwqeSs0YWwIqeIo8kbjz5dCkTZCGpTcT6ui86zxsAJs6hLLz3eg9QzRwEeYjsCDscMSH+JDNqfItzIUwAq7H/ZJYP9d1tCQwaq5pNp+gLmgW/VG6gL6aNKYyJbF1E7dDADlnUKYq+583PZGOXp7yD730OXfnRhr4IWc1QaNEBPniXjcvcdyF+UMBG7yOmmV75vXFiHNAWwmgNchgBW70AtWysiXdZtc09EV+UrakVcGBpAEX6YTPtKPC1J853ntdF7DF+2nKhJir9HbC0QqBqxoHR5e8l+tw4LeR3v5JAbJk+eWX6qzdYaXSiUrRwgT5EJBM2pTlFT5vuYFv/6s7vWJGcKYAY3fGNWNRADIcx4y1pmCqk45vwCa16/nKIuYKallHm6FV2mH7nlXk5PY4yth9XJwHPKVcp8WgtfUYC6//dMRg7CZ+HP9PATcp3EPM6Cu1TZY5u8v+D8Dn4BYpX1eJw8hLcuSTMacU4qZ9KGWSJwOVd3pWOAMVcxjtzfMeCqYkg5aLsAqCb6PdbqExj1l0252XzOmtB65hM7TbpZTTAeKnDaQL2VosjdH1ODa2+w6MC1vJ+wHRmJkkvFVqsorCoPsvKnCWal/PQmG7TKsOWS7ryJPx5D/3lCHRVCZSnv8tKyp3DEOiDBayVnA2j7XFL2b1Q0pXRGHPGOOLvp5TmlJLgfMYNUvoEbTDjkcoJF9DTdN3axjeLYO1oFmtTa1tgPwUYAMSUF+WSmO8+AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/calendar-gray.17485597.svg\";","module.exports = __webpack_public_path__ + \"img/registerreturn-icon-gray.cfa29726.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJMAAABRCAYAAADWxZSqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAD2klEQVR4nO3d4VHbMBQH8Ccu39EGZAPSCQgTEE9ARqATNCOECWoWqMIGyQSFDcIEFROop/SlF+LYUcizZKP/7xOX82FJ/CPb8umhnHMUQhk7JKJh0ME95wq9zKGf0hrDpIwdE9GUiCZEdNnXTn7SiohKIlq4Qtte9iCyg2HiWcgP5M0X73+IdyKauULPu9/UtCphUsb6mWie4Ux0jJ+pJpil6n0IEwfpZ/ea2RmvRDRGoA672H7K90cIUrNrfw/V5QamtAmTMlZjkILdKGNnPWlrVNuZaYZ7pJM88EMK7LjgWWmKQTnJJcasanDCGtL7dt0ldiMjGnJIQpZEpjyjA1P0648Px92RAcnqKeaEp9pvrtAvEZrUC4PAVyRZra+4Qpf8dHt/5FA/dpUw7dw66PZaWfHiCr3g8/urzSjiuX02ygE/7jZZuUKvIzasK8qAMI1qLvuLFG8PlLG3HGAT+9z+yjUIOCjHINGZ/U71Gmqc6Lze3UXAQVmGKdPZ+CwhMxOc762lL+Uo4En8/dB9nQB/v3i1+2sQpjhKV2jxZQRl7DLgkupvzMUvf/wW4MfuZyGXOYAgCBOIQZhADMIEYhAmEIMwgRiECcQgTCAGYQIxCBOIQZhADMIEYhAmEIMwgRiECcQgTCAGYQIxCBOIQZhADMIEYrChII5xS2V4QnZjD1s6d2WTAsIUx03CjZlX+7tI2oLLHIhBmNrxmui8ay4ikcIrwtQOXwHlOeL5/I7hR1+9hUtMP/Jnsfi+TnHP1I41b8mOVVLHz0a7/1VhyTfnseol+L6uEaZ2pCipc6eMLfjn2CV1fF9HCFM7Uj25xSzwtS+opA5AEMxMcaCkDohBSR2AUyBMIAZhAjEIE4hBmEAMwgRiECYQgzCBGIQJxCBMIAZhAjEIE4hBmEAMwgRiECYQgzCBGIQJxCBMIAZhAjEhYQqptPHlKGOz7Pc5QjYUpNyLlZJkv7MpqbM6ssPhWhk7doVeNhzzFT0E9Cl0TLIpqROyn2uhjM1mhlLGloF//Fh7+XthwN+u+yON9Rv9fitjnzIYwOn+5sIab67QdWPhS+pct97SqnXEYhn7Vso557+JNmBnKHz0ncvXVPAsPov8h/WbLTeXZmXsPPK9rs/PbBumyu5MaOS3XA9doVMV1uqk7dLAPHJxqL6bIUhVmzDxwEz4GwfNnuoub7n7v2jpCv3CawcIVD0fpGlXG5fahxXwnUDhklf1iCA1q7xO4UCNuMgm/Pti3W6flKDe5mmujjJW87rLJOEKbgpvvP5WZrjy/2mNYTrEv1rpcofOtG5YiIQmRPQXWVcLnQUzMYQAAAAASUVORK5CYII=\""],"sourceRoot":""}