comparison Applications/StoneWebViewer/WebApplication/index.html @ 2003:963f28eb40cb deep-learning

integration default->deep-learning
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 02 Nov 2022 15:14:56 +0100
parents 2034ae383cfd 1fa3f484008e
children 04148de691a7
comparison
equal deleted inserted replaced
1964:2034ae383cfd 2003:963f28eb40cb
83 <label>Warn about the intended use at startup 83 <label>Warn about the intended use at startup
84 <input type="checkbox" style="margin-left: 20px" v-model="settingNotDiagnostic"> 84 <input type="checkbox" style="margin-left: 20px" v-model="settingNotDiagnostic">
85 </label> 85 </label>
86 <br> 86 <br>
87 </div> 87 </div>
88 <label>Use software rendering (will reload the viewer) 88 <label>Enable linear interpolation
89 <input type="checkbox" style="margin-left: 20px" v-model="settingLinearInterpolation">
90 </label>
91 <br>
92 <label>Use software rendering (slower, will reload the viewer)
89 <input type="checkbox" style="margin-left: 20px" v-model="settingSoftwareRendering"> 93 <input type="checkbox" style="margin-left: 20px" v-model="settingSoftwareRendering">
90 </label> 94 </label>
91 <br><br> 95 <br><br>
92 <div style="text-align: center;"> 96 <div style="text-align: center;">
93 <button class="wvInfoPopupCloseButton" @click="ApplyPreferences()"> 97 <button class="wvInfoPopupCloseButton" @click="ApplyPreferences()">
495 </div> 499 </div>
496 </div> 500 </div>
497 501
498 <div class="ng-scope inline-object"> 502 <div class="ng-scope inline-object">
499 <button class="wvButton--underline text-center" 503 <button class="wvButton--underline text-center"
504 data-toggle="tooltip" data-title="Magnifying glass"
505 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_MAGNIFYING_GLASS }"
506 v-on:click="SetMouseButtonActions(MOUSE_TOOL_MAGNIFYING_GLASS, stone.WebViewerAction.MAGNIFYING_GLASS, stone.WebViewerAction.PAN, stone.WebViewerAction.ZOOM)">
507 <i class="fas fa-search-plus"></i>
508 </button>
509 </div>
510
511 <div class="ng-scope inline-object">
512 <button class="wvButton--underline text-center"
513 data-toggle="tooltip" data-title="Rotate to the left"
514 v-on:click="RotateLeft()">
515 <i class="fas fa-undo"></i>
516 </button>
517 </div>
518
519 <div class="ng-scope inline-object">
520 <button class="wvButton--underline text-center"
521 data-toggle="tooltip" data-title="Rotate to the right"
522 v-on:click="RotateRight()">
523 <i class="fas fa-undo fa-flip-horizontal"></i>
524 </button>
525 </div>
526
527 <div class="ng-scope inline-object">
528 <button class="wvButton--underline text-center"
500 data-toggle="tooltip" data-title="Flip horizontally" 529 data-toggle="tooltip" data-title="Flip horizontally"
501 v-on:click="FlipX()"> 530 v-on:click="FlipX()">
502 <i class="fas fa-exchange-alt"></i> 531 <i class="fas fa-exchange-alt"></i>
503 </button> 532 </button>
504 </div> 533 </div>
511 </button> 540 </button>
512 </div> 541 </div>
513 542
514 <div class="ng-scope inline-object"> 543 <div class="ng-scope inline-object">
515 <button class="wvButton--underline text-center" 544 <button class="wvButton--underline text-center"
516 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_SEGMENT }" 545 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_LENGTH }"
517 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_SEGMENT, stone.WebViewerAction.CREATE_SEGMENT)" 546 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_LENGTH, stone.WebViewerAction.CREATE_LENGTH)"
518 data-toggle="tooltip" data-title="Measure length"> 547 data-toggle="tooltip" data-title="Measure length">
519 <i class="fas fa-arrows-alt-h"></i> 548 <i class="fas fa-ruler"></i>
520 </button> 549 </button>
521 </div> 550 </div>
522 551
523 <div class="ng-scope inline-object"> 552 <div class="ng-scope inline-object">
524 <button class="wvButton--underline text-center" 553 <button class="wvButton--underline text-center"
525 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_ANGLE }" 554 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_ANGLE }"
526 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_ANGLE, stone.WebViewerAction.CREATE_ANGLE)" 555 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_ANGLE, stone.WebViewerAction.CREATE_ANGLE)"
527 data-toggle="tooltip" data-title="Measure angle"> 556 data-toggle="tooltip" data-title="Measure angle">
528 <i class="fas fa-angle-left fa-lg"></i> 557 <i class="fas fa-drafting-compass"></i>
529 </button> 558 </button>
530 </div> 559 </div>
531 560
532 <div class="ng-scope inline-object"> 561 <div class="ng-scope inline-object">
533 <button class="wvButton--underline text-center" 562 <button class="wvButton--underline text-center"
538 </button> 567 </button>
539 </div> 568 </div>
540 569
541 <div class="ng-scope inline-object"> 570 <div class="ng-scope inline-object">
542 <button class="wvButton--underline text-center" 571 <button class="wvButton--underline text-center"
572 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_PIXEL_PROBE }"
573 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_PIXEL_PROBE, stone.WebViewerAction.CREATE_PIXEL_PROBE)"
574 data-toggle="tooltip" data-title="Pixel probe">
575 <i class="fas fa-microscope"></i>
576 </button>
577 </div>
578
579 <div class="ng-scope inline-object">
580 <button class="wvButton--underline text-center"
581 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_RECTANGLE_PROBE }"
582 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_RECTANGLE_PROBE, stone.WebViewerAction.CREATE_RECTANGLE_PROBE)"
583 data-toggle="tooltip" data-title="Rectangle probe">
584 <i class="fas fa-plus-square"></i>
585 </button>
586 </div>
587
588 <div class="ng-scope inline-object">
589 <button class="wvButton--underline text-center"
590 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_ELLIPSE_PROBE }"
591 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_ELLIPSE_PROBE, stone.WebViewerAction.CREATE_ELLIPSE_PROBE)"
592 data-toggle="tooltip" data-title="Ellipse probe">
593 <i class="fas fa-plus-circle"></i>
594 </button>
595 </div>
596
597 <div class="ng-scope inline-object">
598 <button class="wvButton--underline text-center"
599 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_CREATE_TEXT_ANNOTATION }"
600 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_CREATE_TEXT_ANNOTATION, stone.WebViewerAction.CREATE_TEXT_ANNOTATION)"
601 data-toggle="tooltip" data-title="Add text annotation">
602 <i class="fas fa-comment-dots"></i>
603 </button>
604 </div>
605
606 <div class="ng-scope inline-object">
607 <button class="wvButton--underline text-center"
543 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_REMOVE_MEASURE }" 608 v-bind:class="{ 'active' : mouseTool == MOUSE_TOOL_REMOVE_MEASURE }"
544 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_REMOVE_MEASURE, stone.WebViewerAction.REMOVE_MEASURE)" 609 v-on:click="SetLeftMouseButtonAction(MOUSE_TOOL_REMOVE_MEASURE, stone.WebViewerAction.REMOVE_MEASURE)"
545 data-toggle="tooltip" data-title="Delete measurement"> 610 data-toggle="tooltip" data-title="Delete annotation">
546 <i class="fas fa-trash"></i> 611 <i class="fas fa-trash"></i>
547 </button> 612 </button>
548 </div> 613 </div>
549 614
550 <div class="ng-scope inline-object"> 615 <div class="ng-scope inline-object">
672 'wvSplitpane__cellBorder--red' : content.series.color == 'red', 737 'wvSplitpane__cellBorder--red' : content.series.color == 'red',
673 'wvSplitpane__cellBorder--green' : content.series.color == 'green', 738 'wvSplitpane__cellBorder--green' : content.series.color == 'green',
674 'wvSplitpane__cellBorder--yellow' : content.series.color == 'yellow', 739 'wvSplitpane__cellBorder--yellow' : content.series.color == 'yellow',
675 'wvSplitpane__cellBorder--violet' : content.series.color == 'violet' 740 'wvSplitpane__cellBorder--violet' : content.series.color == 'violet'
676 }" 741 }"
677 ondragover="event.preventDefault()" 742 v-on:dragenter="$event.preventDefault()"
743 v-on:dragover="$event.preventDefault()"
678 v-on:drop="DragDrop($event)" 744 v-on:drop="DragDrop($event)"
679 style="width:100%;height:100%"> 745 style="width:100%;height:100%">
680 <div class="wvSplitpane__cell" 746 <div class="wvSplitpane__cell"
681 v-on:click="MakeActive()"> 747 v-on:click="MakeActive()">
682 <div v-show="status == 'ready'" 748 <div v-show="status == 'ready'"
685 <canvas v-bind:id="canvasId" class="viewport-canvas" 751 <canvas v-bind:id="canvasId" class="viewport-canvas"
686 style="position:absolute; left:0; top:0; width:100%; height:100%" 752 style="position:absolute; left:0; top:0; width:100%; height:100%"
687 oncontextmenu="return false"></canvas> 753 oncontextmenu="return false"></canvas>
688 754
689 <div v-show="showInfo"> 755 <div v-show="showInfo">
756 <div v-if="numberOfFrames > 1" class="wvVerticalScrollbar"
757 v-on:click="var offset = $event.currentTarget.getClientRects()[0]; var y = $event.clientY - offset.top; var height = $event.currentTarget.offsetHeight; currentFrame = Math.min(numberOfFrames - 1, Math.floor(y * numberOfFrames / (height - 1)));">
758 <div class="wvVerticalScrollbarHighlight"
759 v-bind:style="{ top: (currentFrame / (numberOfFrames - 1) * 95.0) + '%' }">
760 </div>
761 </div>
762
690 <div class="wv-overlay"> 763 <div class="wv-overlay">
691 <div v-if="'tags' in content.series" class="wv-overlay-topleft"> 764 <div v-if="'tags' in content.series" class="wv-overlay-topleft">
692 {{ content.series.tags[PATIENT_NAME] }}<br/> 765 {{ content.series.tags[PATIENT_NAME] }}<br/>
693 {{ content.series.tags[PATIENT_ID] }}<br/> 766 {{ content.series.tags[PATIENT_ID] }}<br/>
694 {{ app.FormatDate(content.series.tags[PATIENT_BIRTH_DATE]) }} 767 {{ app.FormatDate(content.series.tags[PATIENT_BIRTH_DATE]) }}
695 </div> 768 </div>
696 <div v-if="'tags' in content.series" class="wv-overlay-topright"> 769 <div v-if="'tags' in content.series" class="wv-overlay-topright"
770 v-bind:class="{ 'wvInfoRightMargin' : numberOfFrames > 1 }">
697 {{ content.series.tags[STUDY_DESCRIPTION] }}<br/> 771 {{ content.series.tags[STUDY_DESCRIPTION] }}<br/>
698 <span v-if="contentDate !== undefined && contentDate != ''">{{ app.FormatDate(contentDate) }} <span v-show="contentTime != ''">{{ app.FormatTime(contentTime) }}</span><br/></span> 772 <span v-if="contentDate !== undefined && contentDate != ''">{{ app.FormatDate(contentDate) }} <span v-show="contentTime != ''">{{ app.FormatTime(contentTime) }}</span><br/></span>
699 <span v-else="contentDate === undefined || contentDate == ''">{{ app.FormatDate(content.series.tags[STUDY_DATE]) }}<br/></span> 773 <span v-else="contentDate === undefined || contentDate == ''">{{ app.FormatDate(content.series.tags[STUDY_DATE]) }}<br/></span>
700 {{ content.series.tags[SERIES_NUMBER] }} | {{ content.series.tags[SERIES_DESCRIPTION] }} 774 {{ content.series.tags[SERIES_NUMBER] }} | {{ content.series.tags[SERIES_DESCRIPTION] }}
701 </div> 775 </div>
721 <button class="btn btn-primary" @click="DecrementFrame()"> 795 <button class="btn btn-primary" @click="DecrementFrame()">
722 <i class="fas fa-step-backward"></i> 796 <i class="fas fa-step-backward"></i>
723 </button> 797 </button>
724 </div> 798 </div>
725 <span data-toggle="tooltip" data-title="Current frame number"> 799 <span data-toggle="tooltip" data-title="Current frame number">
726 &nbsp;&nbsp;{{ currentFrame + 1 }} / {{ numberOfFrames }}&nbsp;&nbsp; 800 &nbsp;&nbsp;
801 <input type="text" v-model="currentFrameFromUser" class="wvInputInstanceNumber"> / {{ numberOfFrames }}
802 &nbsp;&nbsp;
727 </span> 803 </span>
728 <div class="btn-group btn-group-sm" role="group"> 804 <div class="btn-group btn-group-sm" role="group">
729 <button class="btn btn-primary" @click="IncrementFrame()"> 805 <button class="btn btn-primary" @click="IncrementFrame()">
730 <i class="fas fa-step-forward"></i> 806 <i class="fas fa-step-forward"></i>
731 </button> 807 </button>
744 <i class="fas fa-play"></i> 820 <i class="fas fa-play"></i>
745 </button> 821 </button>
746 </div> 822 </div>
747 </span> 823 </span>
748 </div> 824 </div>
749 <div class="wv-overlay-bottomright wvPrintExclude" style="bottom: 0px"> 825 <div class="wv-overlay-bottomright wvPrintExclude" style="bottom: 0px"
826 v-bind:class="{ 'wvInfoRightMargin' : numberOfFrames > 1 }">
750 <div v-if="windowingWidth != 0"> 827 <div v-if="windowingWidth != 0">
751 ww/wc: {{ windowingWidth }} / {{ windowingCenter }} 828 ww/wc: {{ windowingWidth }} / {{ windowingCenter }}
752 </div> 829 </div>
753 <div style="padding-top: 0.5em"> 830 <div style="padding-top: 0.5em">
754 <div v-show="quality == stone.DisplayedFrameQuality.NONE" 831 <div v-show="quality == stone.DisplayedFrameQuality.NONE"